0

Spring-Jdbc テンプレート (最初のタイマー) を使用して MySql リポジトリを作成しています。AutoIncrement 列を主キーとして使用するテーブルがあります。

バッチ作成ステートメントが成功するたびに、新しく生成された ID (autoInc) を取得する方法があるのだろうか?

ポインタやサンプルは非常に役立ちます。

ありがとうパンクス

4

1 に答える 1

0

またはオブジェクトgetGeneratedKeys()のメソッドを使用して、新しい自動生成された値を識別します。返されたオブジェクトを反復処理して、新しく生成されたキー値をバッチ ステートメントの順序で取得します。 StatementPreparedStatementResultSet

java.sql.SQLFeatureNotSupportedException使用している JDBC ドライバーがこのメソッドをサポートしていない場合、 この呼び出しがスローされることがあります。

サンプル コード スニペット:

String sql_insert =  
    "insert into my_table ( non_auto_incrmnt_fld_names_,_separated ) " +  
                 " values ( record1 ), ( record2 )"; // append as many as required  
...  
int rowsAffected = stmtObject.executeUpdate( sql_insert, Statement.RETURN_GENERATED_KEYS );  
ResultSet rs = stmtObject.getGeneratedKeys();  

//******************************************************  
rs.last();  
int rows = rs.getRow();  
System.out.println( "Generated keys count: " + rows );  
int currentRow = 1;  
rs.beforeFirst();  
//******************************************************/  

while( rs.next() ) {  
    System.out.println( /**/( currentRow++ ) + " = " + /**/rs.getInt( 1 ) );  
} // while rs  
于 2012-06-06T19:52:13.350 に答える