Database 是否可以使用JDBI中的句柄从insert获取生成的密钥?
我知道有@GeneratedKeys,但我不能将其与处理程序一起使用(我在测试中使用的是处理程序)。是的,绝对可以使用句柄检索生成的键(例如,自动递增主键)(我假设您指的是句柄而不是处理程序)。例如,假设一个整数生成的键:Database 是否可以使用JDBI中的句柄从insert获取生成的密钥?,database,jdbi,Database,Jdbi,我知道有@GeneratedKeys,但我不能将其与处理程序一起使用(我在测试中使用的是处理程序)。是的,绝对可以使用句柄检索生成的键(例如,自动递增主键)(我假设您指的是句柄而不是处理程序)。例如,假设一个整数生成的键: handle.createStatement("INSERT ...") .bind("foo", foo) .executeAndReturnGeneratedKeys(IntegerMapper.FIRST).first(); 请注意,JDBC驱动程序支
handle.createStatement("INSERT ...")
.bind("foo", foo)
.executeAndReturnGeneratedKeys(IntegerMapper.FIRST).first();
请注意,JDBC驱动程序支持
java.sql.Statement.getGeneratedKeys()
,但如果注释驱动的返回方法适用于您的数据库,我希望这种方法也适用。是的,绝对可以使用句柄检索生成的键(例如,自动递增主键)(我假设你指的是句柄而不是句柄)。例如,假设一个整数生成的键:
handle.createStatement("INSERT ...")
.bind("foo", foo)
.executeAndReturnGeneratedKeys(IntegerMapper.FIRST).first();
请注意,JDBC驱动程序支持java.sql.Statement.getGeneratedKeys(),但如果注释驱动的返回方法适用于您的数据库,我希望这种方法也适用。在JDBI 3中,这已更改为
handle.createUpdate("INSERT ...")
.bind("foo", foo)
.executeAndReturnGeneratedKeys("id")
.mapTo(Long.class)
.one()
在JDBI3中,这已更改为
handle.createUpdate("INSERT ...")
.bind("foo", foo)
.executeAndReturnGeneratedKeys("id")
.mapTo(Long.class)
.one()
您可以添加更多的代码示例(例如测试中的处理程序)吗?您可以添加更多的代码示例(例如测试中的处理程序?)