[英]jdbcTemplate.update for auto incremented and unique ID field
I have an EMPLOYEE
table that has 4 fields; 我有一个包含4个字段的EMPLOYEE
表; ID
, NAME
, AGE
, SALARY
. ID
, NAME
, AGE
, SALARY
。 ID
is unique and auto-increment. ID
是唯一的,并且会自动递增。
Below is the code to insert a row in the table, using Spring's JDBCTemplate
. 下面是使用Spring的JDBCTemplate
在表中插入一行的代码。 Please suggest, how can I auto increment ID
field. 请提出建议,我该如何自动增加ID
字段。
String sql = "insert into employee values (?,?,?,?)"
jdbcTemplate.update( sql, ID, bean.getName(), bean.getAge(), bean.getSalary())
I see, you tag your question Oracle
, use Oracle sequence
then. 我看到,您将问题标记为Oracle
,然后使用Oracle sequence
。
String sql = "insert into Employee values (id_seq.nextval, ?, ?, ?)";
jdbcTemplate.update(sql, bean.getName(), bean.getAge(), bean.getSalary());
Ref: How to create Sequence in Oracle . 参考: 如何在Oracle中创建序列 。
Just add following code to your domain: Ref: http://docs.spring.io/spring/docs/2.5.x/reference/jdbc.html#jdbc-auto-genereted-keys 只需将以下代码添加到您的域中:参考: 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.