如何在批量更新查询(Java,MySQL)中获取自动增量值



我正在使用Spring-Jdbc模板(第一个计时器)来创建MySql存储库。我有使用自动增量列作为主键的表。

我想知道是否有办法在每个成功的批量创建语句中获取新生成的 Id(autoInc)?

任何指针或示例都将是一个很大的帮助。

谢谢潘克斯

使用StatementPreparedStatement对象中的getGeneratedKeys()方法来标识自动生成的新值。迭代返回的 ResultSet 对象,按批处理语句的顺序获取新生成的键值。

如果您正在使用的 JDBC 驱动程序不支持此方法,则此调用可能会引发java.sql.SQLFeatureNotSupportedException

示例代码片段

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  

相关内容

  • 没有找到相关文章

最新更新