加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 当我通过jdbctemplate在表中插入一个记录时,如何获取自

发布时间:2020-12-15 00:22:19 所属栏目:Java 来源:网络整理
导读:private void insertIntoMyTable (Myclass m) { String query = "INSERT INTO MYTABLE (NAME) VALUES (?)"; jdbcTemplate.update(query,m.getName());} 当上述查询插入一条记录时,表中的ID列会自动增加. 有没有办法在插入时取回自动递增的ID.所以在这个例子
private void insertIntoMyTable (Myclass m) {
    String query = "INSERT INTO MYTABLE (NAME) VALUES (?)";
    jdbcTemplate.update(query,m.getName());
}

当上述查询插入一条记录时,表中的ID列会自动增加.

有没有办法在插入时取回自动递增的ID.所以在这个例子中,我的方法的返回值将是int

解决方法

检查 this reference.您可以使用jdbcTemplate.update作为:

编辑
按要求添加导入

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.PreparedStatementCreator;
import org.springframework.jdbc.support.GeneratedKeyHolder;
import org.springframework.jdbc.support.KeyHolder;

以下是代码用法:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读