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

Java 自动递增的唯一ID字段的jdbcTemplate.update,java,spring,oracle,jdbc,jdbctemplate,Java,Spring,Oracle,Jdbc,Jdbctemplate,我有一个EMPLOYEE表,它有4个字段身份证,姓名,年龄,工资ID是唯一且自动递增的 下面是使用Spring的JDBCTemplate在表中插入行的代码。请建议,如何自动递增ID字段 String sql = "insert into employee values (?,?,?,?)" jdbcTemplate.update( sql, ID, bean.getName(), bean.getAge(), bean.getSalary()) 我明白了,你把你的问题标记为Oracle,然后使

我有一个
EMPLOYEE
表,它有4个字段<代码>身份证,
姓名
年龄
工资
<代码>ID是唯一且自动递增的

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

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

我明白了,你把你的问题标记为Oracle,然后使用Oracle
序列

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

参考:。

只需将以下代码添加到您的域中: 参考:


你的域是什么样子的?共享你的员工类代码
Employee
是一个表而不是一个类。它说的是jdbc模板。她似乎没有使用JPA或任何其他ORM。
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);