繁体   English   中英

jdbcTemplate.update用于自动递增的唯一ID字段

[英]jdbcTemplate.update for auto incremented and unique ID field

我有一个包含4个字段的EMPLOYEE表; IDNAMEAGESALARY ID是唯一的,并且会自动递增。

下面是使用Spring的JDBCTemplate在表中插入一行的代码。 请提出建议,我该如何自动增加ID字段。

String sql = "insert into employee values (?,?,?,?)"
jdbcTemplate.update( sql, ID, bean.getName(), bean.getAge(), bean.getSalary())

我看到,您将问题标记为Oracle ,然后使用Oracle sequence

String sql = "insert into Employee values (id_seq.nextval, ?, ?, ?)";
jdbcTemplate.update(sql, bean.getName(), bean.getAge(), bean.getSalary());

参考: 如何在Oracle中创建序列

只需将以下代码添加到您的域中:参考: http : //docs.spring.io/spring/docs/2.5.x/reference/jdbc.html#jdbc-auto-genereted-keys

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM