jav*_*y79 54 java sql-server spring jdbc jdbctemplate
是否可以在Spring jdbc模板调用中从SQL插入中获取@@ identity?如果是这样,怎么样?
Jas*_*man 89
该JDBCTemplate.update方法被重载以获取一个名为GeneratedKeyHolder的对象,您可以使用该对象来检索自动生成的密钥.例如(代码取自此处):
final String INSERT_SQL = "insert into my_test (name) values(?)";
final String name = "Rob";
KeyHolder keyHolder = new GeneratedKeyHolder();
jdbcTemplate.update(
new PreparedStatementCreator() {
public PreparedStatement createPreparedStatement(Connection connection) throws SQLException {
PreparedStatement ps =
connection.prepareStatement(INSERT_SQL, new String[] {"id"});
ps.setString(1, name);
return ps;
}
},
keyHolder);
// keyHolder.getKey() now contains the generated key
Run Code Online (Sandbox Code Playgroud)
tod*_*ina 51
怎么样SimpleJdbcInsert.executeAndReturnKey?它有两种形式,具体取决于输入:
Map
public java.lang.Number executeAndReturnKey(java.util.Map<java.lang.String,?> args)从界面复制的描述:
SimpleJdbcInsertOperations使用传入的值执行插入并返回生成的键.这要求已指定具有自动生成的键的列的名称.此方法将始终返回a,
KeyHolder但调用者必须验证它实际上是否包含生成的键.具体说明:
executeAndReturnKey在界面中SimpleJdbcInsertOperations参数:
args - Map containing column names and corresponding value返回:
the generated key value
SqlParameterSource
public java.lang.Number executeAndReturnKey(SqlParameterSourceparameterSource)从界面复制的描述:
SimpleJdbcInsertOperations使用传入的值执行插入并返回生成的键.这要求已指定具有自动生成的键的列的名称.此方法将始终返回a,
KeyHolder但调用者必须验证它实际上是否包含生成的键.具体说明:
executeAndReturnKey在界面中SimpleJdbcInsertOperations参数:
parameterSource - SqlParameterSource containing values to use for insert返回:
生成的键值.
She*_*rma 21
将详细的注释/示例代码添加到todd.pierzina答案
jdbcInsert = new SimpleJdbcInsert(jdbcTemplate);
jdbcInsert.withTableName("TABLE_NAME").usingGeneratedKeyColumns(
"Primary_key");
Map<String, Object> parameters = new HashMap<>();
parameters.put("Column_NAME1", bean.getval1());
parameters.put("Column_NAME2", bean.getval2());
// execute insert
Number key = jdbcInsert.executeAndReturnKey(new MapSqlParameterSource(
parameters));
// convert Number to Int using ((Number) key).intValue()
return ((Number) key).intValue();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
53218 次 |
| 最近记录: |