2017-08-11 12 views
0

私はEMPLOYEEの4つのフィールドを持つテーブルを持っています。 ID,NAME,AGE,SALARYIDはユニークで自動インクリメントです。jdbcTemplate.update自動インクリメントされユニークなIDフィールド

以下は、SpringのJDBCTemplateを使用してテーブルに行を挿入するコードです。どうか、私はどのように自動インクリメントIDフィールドを提案することをお勧めします。私が見

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

はどのようにあなたのドメインは、のように見えるん? –

+0

従業員クラスコードを共有 –

+0

'employee'はクラスではないテーブルです。 –

答えて

1

、あなたの質問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

0

ちょうどあなたのドメインに次のコードを追加します。 参考: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); 
+0

これはJDBCTemplateです。彼女はJPAや他のORMを使用していないようです。 –

関連する問題