通过 jdbctemplate 从 sql 插入的身份 [英] identity from sql insert via jdbctemplate

查看:39
本文介绍了通过 jdbctemplate 从 sql 插入的身份的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否可以从 Spring jdbc 模板调用的 SQL 插入中获取 @@identity?如果是,怎么办?

Is it possible to get the @@identity from the SQL insert on a Spring jdbc template call? If so, how?

推荐答案

JDBCTemplate.update 方法被重载以获取一个名为 GeneratedKeyHolder 的对象,您可以使用它来检索自动生成的密钥.例如(代码取自 here):

The JDBCTemplate.update method is overloaded to take an object called a GeneratedKeyHolder which you can use to retrieve the autogenerated key. For example (code taken from here):

final String INSERT_SQL = "insert into my_test (name) values(?)";
final String name = "Rob";
KeyHolder keyHolder = new GeneratedKeyHolder();
jdbcTemplate.update(
    new PreparedStatementCreator() {
        public PreparedStatement createPreparedStatement(Connection connection) throws SQLException {
            PreparedStatement ps =
                connection.prepareStatement(INSERT_SQL, new String[] {"id"});
            ps.setString(1, name);
            return ps;
        }
    },
    keyHolder);
// keyHolder.getKey() now contains the generated key

这篇关于通过 jdbctemplate 从 sql 插入的身份的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆