2013-11-21 91 views
2

我有列的表ID,姓名,地址,城市,州,郵編。這裏ID是插入新紀錄這樣的時候自動生成:insert into table1(name,address,city,state,zip) values(?,?,?,?,?)插入新記錄時,如何從數據庫中自動生成的值?

這裏是我的代碼:

preparedstatement.setString(1,name); 
preparedstatement.setString(2,address); 
preparedstatement.setString(3,city); 
preparedstatement.setString(4,state); 
preparedstatement.setString(5,zip); 

preparedstatement.executeUpdate(); 

現在我想知道什麼是自動生成的id值。我怎樣才能做到這一點?

回答

6

創建一個額外的標誌Statement.RETURN_GENERATED_KEYS準備好的聲明,並利用PreparedStatement.getGeneratedKeys()

String sql = "insert into table1(name,address,city,state,zip) values(?,?,?,?,?)"; 
PreparedStatement preparedstatement 
= con.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); 

//.... 

preparedstatement.setString(1,name); 
preparedstatement.setString(2,address); 
preparedstatement.setString(3,city); 
preparedstatement.setString(4,state); 
preparedstatement.setString(5,zip); 

preparedstatement.executeUpdate(); 

ResultSet generatedKeys = preparedstatement.getGeneratedKeys(); 
//.... 

相關:PreparedStatement with Statement.RETURN_GENERATED_KEYS

3
String query = <your query>; 

PreparedStatement preparedstatement= 
     con.prepareStatement(query ,Statement.RETURN_GENERATED_KEYS) 

preparedstatement.setString(1,name); 
preparedstatement.setString(2,address); 
preparedstatement.setString(3,city); 
preparedstatement.setString(4,state); 
preparedstatement.setString(5,zip); 

而且執行更新後,

ResultSet rs = preparedstatement.getGeneratedKeys(); 

試試這個。

+0

是得到的值id這唯一的出路?沒有任何功能反應插入記錄時? – user2848031

相關問題