JDBCtemplate:获取插入的数据自动生成的密钥

问题描述 投票:0回答:2

我想知道,如何使用jdbctemplate获取插入数据的Id?我可以在Php中做到这一点,但我不知道如何在java中做到这一点。我搜索了文档,发现了executeAndReturnKey(..)但我的jdbctemplate不识别这个类(只有.execute())。

请。帮我

java jdbctemplate
2个回答
4
投票

你可以使用KeyHolderJdbcTemplate

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();

2
投票

例如,

SimpleJdbcInsert simpleJdbcInsert = new SimpleJdbcInsert(dataSource)  
                                    .withTableName("EMPLOYEE")  
                                    .usingGeneratedKeyColumns("ID");  


Number id = simpleJdbcInsert.executeAndReturnKey(parameters);  
System.out.println("Generated id - " + id.longValue());  
© www.soinside.com 2019 - 2024. All rights reserved.