Mysql aotu_increment這個功能在主從關系中經常用到。MySQL沒有oracle的專門序列,加上以前的項目使用的是select max(*)來實現這個功能,也是沒有深究。後來對比發出max(*)的方法要多一次select數據庫,效率肯定不如用java來實現。
方法1、mysql有select LAST_INSERT_ID()可以獲取最後的auto_increment。所在可用select last_insert_id()來代替max(*),這樣在數據表中就可設定auto_increment字段了。這個方法在多線程並發操作下,比較起max(*)有較大的優勢。
方法2、使用java有提供getGeneratedKeys來實現獲取最後increment ID。
片斷代碼如下:
pstmt.executeUpdate();
conn.commit();
//獲取auto_increment
int aotuId;
rs = pstmt.getGeneratedKeys();
while(rs.next()){
autoId = rs.getInt(1);
}
作者“實踐記錄”