JDBCtemplate:获取插入的数据自动生成的密钥
JDBCtemplate : getting the inserted data's autogenerated key
我想知道,如何使用 jdbctemplate 获取插入数据的 ID?我可以在 Php 中执行此操作,但我不知道如何在 java 中执行此操作。
我搜索了文档并发现了 executeAndReturnKey(..) 但我的 jdbctemplate 无法识别此 class(仅 .execute()).
请问。帮帮我
例如,
SimpleJdbcInsert simpleJdbcInsert = new SimpleJdbcInsert(dataSource)
.withTableName("EMPLOYEE")
.usingGeneratedKeyColumns("ID");
Number id = simpleJdbcInsert.executeAndReturnKey(parameters);
System.out.println("Generated id - " + id.longValue());
您可以将 KeyHolder
与 JdbcTemplate
、
一起使用
KeyHolder generatedKeyHolder = new GeneratedKeyHolder();
jdbcTemplate.update(new PreparedStatementCreator() {
@Override
public PreparedStatement createPreparedStatement(Connection connection) throws SQLException {
PreparedStatement statement = connection.prepareStatement("Your Insert/Update Query", Statement.RETURN_GENERATED_KEYS);
// set values in query
return statement;
}
}, generatedKeyHolder);
Number id = generatedKeyHolder.getKey();
// Use this Number to get id with feasible type long, int etc.
// For example,
// int myId = id.intValue();
我想知道,如何使用 jdbctemplate 获取插入数据的 ID?我可以在 Php 中执行此操作,但我不知道如何在 java 中执行此操作。 我搜索了文档并发现了 executeAndReturnKey(..) 但我的 jdbctemplate 无法识别此 class(仅 .execute()).
请问。帮帮我
例如,
SimpleJdbcInsert simpleJdbcInsert = new SimpleJdbcInsert(dataSource)
.withTableName("EMPLOYEE")
.usingGeneratedKeyColumns("ID");
Number id = simpleJdbcInsert.executeAndReturnKey(parameters);
System.out.println("Generated id - " + id.longValue());
您可以将 KeyHolder
与 JdbcTemplate
、
KeyHolder generatedKeyHolder = new GeneratedKeyHolder();
jdbcTemplate.update(new PreparedStatementCreator() {
@Override
public PreparedStatement createPreparedStatement(Connection connection) throws SQLException {
PreparedStatement statement = connection.prepareStatement("Your Insert/Update Query", Statement.RETURN_GENERATED_KEYS);
// set values in query
return statement;
}
}, generatedKeyHolder);
Number id = generatedKeyHolder.getKey();
// Use this Number to get id with feasible type long, int etc.
// For example,
// int myId = id.intValue();