我知道有@GeneratedKeys,但我不能将它用于处理程序(我在测试中使用处理程序)。
答案 0 :(得分:2)
是的,绝对可以使用句柄检索生成的键(例如,自动递增主键)(我假设你的意思是句柄而不是处理程序 )。例如,假设生成整数键:
handle.createStatement("INSERT ...")
.bind("foo", foo)
.executeAndReturnGeneratedKeys(IntegerMapper.FIRST).first();
请注意,支持java.sql.Statement.getGeneratedKeys()
的JDBC驱动程序存在依赖关系,但如果注释驱动的返回方法适用于您的数据库,我希望这种方法也是如此。
答案 1 :(得分:1)
在JDBI 3中,该名称已更改为
handle.createUpdate("INSERT ...")
.bind("foo", foo)
.executeAndReturnGeneratedKeys("id")
.mapTo(Long.class)
.findOnly()