2013-07-06 17 views
3

我有這樣的SQL語句:如何獲得自動生成的鍵並設置結果集類型?

con = cpds.getConnection(); 
      con.setAutoCommit(false); 
      SQL = "INSERT INTO person(accountID,addressID,lastName,firstName,middleName,suffix,gender,birthDate, [language], ethinicity) " 
        + "VALUES(?,?,?,?,?,?,?,?,?,?)"; 
      PreparedStatement stmt = con.prepareStatement(SQL,ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); 

我希望能夠做的就是生成的密鑰對這種說法。現在我已經完成了此操作,但沒有設置結果集typescroll參數。似乎沒有任何說法,這是否可以:

PreparedStatement stmt = con.prepareStatement(SQL,ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY, Statement.RETURN_GENERATED_KEYS) 

我想知道的是:我如何設置結果集類型typescroll不敏感的,並得到生成的密鑰?

回答

2

Statement#getGeneratedKeys()返回ResultSet,你可以用它來獲取作爲

ResultSet rsKeys = statement.getGeneratedKeys(); 
if (rsKeys.next()) { 
    person.setId(rsKeys.getLong(1)); 
} 

如何設置結果集類型typescroll不敏感的,並得到生成的密鑰?

這樣做是沒有意義的,因爲你可以期望只是做一個插入後檢索。雖然您想要設置滾動類型僅適用於結果集,即在查詢之後。所以,這兩件事是互相排斥的,因此API顯然不支持它。

相關問題