是否可以使用 JDBI 中的句柄从插入中获取生成的密钥?
is it possible to get the generated key from an insert using a handle in JDBI?
我知道有 @GeneratedKeys,但我不能将它与处理程序一起使用(我在测试中使用处理程序)。
是的,绝对可以使用句柄检索生成的键(例如,自动递增主键)(我假设你的意思是 handle 而不是 处理程序)。例如,假设一个整数生成的键:
handle.createStatement("INSERT ...")
.bind("foo", foo)
.executeAndReturnGeneratedKeys(IntegerMapper.FIRST).first();
请注意,支持 java.sql.Statement.getGeneratedKeys()
的 JDBC 驱动程序存在依赖性,但如果注释驱动的 return 方法适用于您的数据库,我希望这种方法将作为嗯
在 JDBI 3 中,这已更改为
handle.createUpdate("INSERT ...")
.bind("foo", foo)
.executeAndReturnGeneratedKeys("id")
.mapTo(Long.class)
.one()
我知道有 @GeneratedKeys,但我不能将它与处理程序一起使用(我在测试中使用处理程序)。
是的,绝对可以使用句柄检索生成的键(例如,自动递增主键)(我假设你的意思是 handle 而不是 处理程序)。例如,假设一个整数生成的键:
handle.createStatement("INSERT ...")
.bind("foo", foo)
.executeAndReturnGeneratedKeys(IntegerMapper.FIRST).first();
请注意,支持 java.sql.Statement.getGeneratedKeys()
的 JDBC 驱动程序存在依赖性,但如果注释驱动的 return 方法适用于您的数据库,我希望这种方法将作为嗯
在 JDBI 3 中,这已更改为
handle.createUpdate("INSERT ...")
.bind("foo", foo)
.executeAndReturnGeneratedKeys("id")
.mapTo(Long.class)
.one()