Spring-Jdbc テンプレート (最初のタイマー) を使用して MySql リポジトリを作成しています。AutoIncrement 列を主キーとして使用するテーブルがあります。
バッチ作成ステートメントが成功するたびに、新しく生成された ID (autoInc) を取得する方法があるのだろうか?
ポインタやサンプルは非常に役立ちます。
ありがとうパンクス
Spring-Jdbc テンプレート (最初のタイマー) を使用して MySql リポジトリを作成しています。AutoIncrement 列を主キーとして使用するテーブルがあります。
バッチ作成ステートメントが成功するたびに、新しく生成された ID (autoInc) を取得する方法があるのだろうか?
ポインタやサンプルは非常に役立ちます。
ありがとうパンクス
またはオブジェクトgetGeneratedKeys()
のメソッドを使用して、新しい自動生成された値を識別します。返されたオブジェクトを反復処理して、新しく生成されたキー値をバッチ ステートメントの順序で取得します。 Statement
PreparedStatement
ResultSet
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