Java JDBCtemplate:获取插入的数据';自动生成的密钥
我想知道,如何使用jdbctemplate获取插入数据的Id?我可以用Php来做这件事,但我不知道如何用java来做。Java JDBCtemplate:获取插入的数据';自动生成的密钥,java,jdbctemplate,Java,Jdbctemplate,我想知道,如何使用jdbctemplate获取插入数据的Id?我可以用Php来做这件事,但我不知道如何用java来做。 我搜索了文档并找到了executeAndReturnKey(..),但我的jdbctemplate无法识别此类(仅.execute()) 请。帮助我,例如 SimpleJdbcInsert simpleJdbcInsert = new SimpleJdbcInsert(dataSource) .with
我搜索了文档并找到了executeAndReturnKey(..),但我的jdbctemplate无法识别此类(仅.execute()) 请。帮助我,例如
SimpleJdbcInsert simpleJdbcInsert = new SimpleJdbcInsert(dataSource)
.withTableName("EMPLOYEE")
.usingGeneratedKeyColumns("ID");
Number id = simpleJdbcInsert.executeAndReturnKey(parameters);
System.out.println("Generated id - " + id.longValue());
比如说,
SimpleJdbcInsert simpleJdbcInsert = new SimpleJdbcInsert(dataSource)
.withTableName("EMPLOYEE")
.usingGeneratedKeyColumns("ID");
Number id = simpleJdbcInsert.executeAndReturnKey(parameters);
System.out.println("Generated id - " + id.longValue());
您可以与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
一起使用
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();
您能否用示例详细说明一下。您是否使用
Spring
的JdbcTemplate
?“但是我的JdbcTemplate无法识别此类(仅.execute())”。这是正确的JdbcTemplate
没有executeAndReturnKey()方法。该方法位于SimpleJdbcInsert
类中。看看这个,你能不能用例子详细说明一下。你在使用Spring
的JdbcTemplate
?“但是我的JdbcTemplate不识别这个类(仅.execute())”。这是正确的JdbcTemplate
没有executeAndReturnKey()方法。该方法位于SimpleJdbcInsert
类中。看看这个