Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment obtenir un identifiant inséré à l'aide de Spring Jdbctemplate.update(String sql, obj...args)

En regardant la documentation pour NamedParameterJdbcTemplate et JdbcTemplate Vous avez deux choix :

utilisez NamedParameterJdbcTemplate mise à jour méthode.

utiliser JdbcTemplate est mise à jour méthode.

Il existe également d'autres méthodes disponibles qui rempliront les clés du GeneratedKeyHolder , c'est à vous de décider lequel correspond à vos besoins.

MODIFIER

Par ex. en utilisant 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();