Tob*_*bia 5 mysql spring spring-jdbc last-insert-id
我正在使用Jdbctemplate,我需要插入查询的id.我读到我必须构建一个特定的PreparedStatement并使用GeneratedKeyHolder对象.
问题是在我的应用程序中,所有insert方法都使用此JdbcTemplate更新方法:
getJdbcTemplate().update(SQL_INSERT,param1,param2,param3,...);
Run Code Online (Sandbox Code Playgroud)
有没有另一种方法来获得插入的ID而不重构所有的daos?
Pau*_*nis 13
查看NamedParameterJdbcTemplate和JdbcTemplate的文档您有两个选择:
使用NamedParameterJdbcTemplate的更新方法.
使用JdbcTemplate的更新方法.
还有一些其他方法可以填充给定GeneratedKeyHolder的键,由 您决定哪一个适合您的需要.
编辑
例如,使用JdbcTemplate:
GeneratedKeyHolder holder = new GeneratedKeyHolder();
jdbcTemplate.update(new PreparedStatementCreator() {
@Override
public PreparedStatement createPreparedStatement(Connection con) throws SQLException {
PreparedStatement statement = con.prepareStatement("INSERT INTO SOME_TABLE(NAME, VALUE) VALUES (?, ?) ", Statement.RETURN_GENERATED_KEYS);
statement.setString(1, "SomeName");
statement.setString(2, "SomeValue");
return statement;
}
}, holder);
long primaryKey = holder.getKey().longValue();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14064 次 |
| 最近记录: |