(轉)通過getGeneratedKeys()獲取主鍵


 通常我們在應用中對mysql執行了insert操作后,需要獲取插入記錄的自增主鍵,這時候通常用getGeneratedKeys()方法獲取主鍵
  1. 獲得數據庫返回的主鍵
           insert into book values(null,'編程珠璣',45);
  2. 獲得主鍵的步驟
            conn.prepareStatement(sql,autoGeneratedKeys)
            autoGeneratedKeys是一個int值 ,1代表返回生成的主鍵,2代表不返回生成的主鍵;為了方便記憶,使用                 Statement.Statement.RETURN_GENERATED_KEYS,Statement.NO_GENERATED_KEYS
3.獲得生成的主鍵
  ResultSet rs=ps.getGeneratedKesy();
  rs.next();
  int userno= rs.getInt(1);

    

Statement stmt = null;    
ResultSet rs = null;    
try {    
    stmt = conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY,    
                                java.sql.ResultSet.CONCUR_UPDATABLE);      
    // ...    
    // 省略若干行(如上例般創建demo表)    
    // ...    
    stmt.executeUpdate(    
            "INSERT INTO autoIncTutorial (dataField) "    
            + "values ('Can I Get the Auto Increment Field?')",    
            Statement.RETURN_GENERATED_KEYS);                      // 向驅動指明需要自動獲取generatedKeys!    
    int autoIncKeyFromApi = -1;    
    rs = stmt.getGeneratedKeys();                                  // 獲取自增主鍵!    
    if (rs.next()) {    
        autoIncKeyFromApi = rs.getInt(1);    
    }  else {    
        // throw an exception from here    
    }     
    rs.close();    
    rs = null;    
    System.out.println("Key returned from getGeneratedKeys():"    
        + autoIncKeyFromApi);    
}  finally { ... }    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM