私はSpring JDBCを使用しています。 Spring Frameworkを使用して最後に挿入されたIDを取得する簡単な方法ですか、いくつかのJDBCトリックを使用する必要がありますか?Spring JDBC - 最後に挿入されたID
jdbcTemplate.update("insert into test (name) values(?)", params, types);
// last inserted id ...
私は以下のようなものを見つけました、しかし、私は得る: "PreparedStatementsのために生成されたキー" のorg.postgresql.util.PSQLException: Returning autogenerated keys is not supported.
KeyHolder keyHolder = new GeneratedKeyHolder();
jdbcTemplate.update(new PreparedStatementCreator() {
@Override
public PreparedStatement createPreparedStatement(
Connection connection) throws SQLException {
PreparedStatement ps = connection.prepareStatement("insert into test (name) values(?)", new String[] {"id"});
ps.setString(1, "test");
return ps;
}
}, keyHolder);
lastId = (Long) keyHolder.getKey();
ありがとうございました。私はこうしました: 'jdbcTemplate.queryForLong(" currval( 'main_seq')を選択してください); ' – marioosh