jdbc中新增資料獲取主鍵的方法
statement介面有乙個方法:int executeupdate(string sql, int autogeneratedkeys) throwssqlexception。執行給定的 sql 語句,並用給定標誌通知驅動程式由此 statement 生成的自動生成鍵是否可用於獲取。如果該 sql 語句不是 insert 語句,或者不是可以返回自動生成鍵的 sql 語句(這些語句的列表是特定於**商的),則驅動程式將忽略該標誌。autogeneratedkeys - 指示自動生成的鍵是否可用於獲取的標誌;以下常量之一:statement.return_generated_keys
statement.no_generated_keys
使用statement實現類物件呼叫executeupdate方法,傳入的第二個引數(常量字段值)表示是否需要獲取自動生成的主鍵,如果傳入的是statement.return_generated_keys(表示1,即也可以傳入1),表示需要返回主鍵。如果不需要返回,可以傳入statement.no_generated_keys(表示0,也可以傳0),不需要返回主鍵時,我們也可以直接用單參的executeupdate方法。一般我們都傳入常量值欄位,便於我們在閱讀**時直到該引數的含義,如果直接傳入0或1,在閱讀**時可能不知道其含義。
執行完execute語句之後,在使用statement的getgeneratekeys()獲取結果集。
resultsetgetgeneratedkeys() throws sqlexception:獲取由於執行此 statement 物件而建立的所有自動生成的鍵。如果此 statement 物件沒有生成任何鍵,則返回空的 resultset 物件。
獲得的結果集就是主鍵的結果集,就一列內容,可以通過next方法遍歷得到set。getstring(1)獲取主鍵值。
**示例:
createstatement
的方法執行語句:
statementps = c.createstatement();
intflag = ps.executeupdate("insert into student(sname,birthday,class)values('xiaohua','2003-05-05','vr')",statement.return_generated_keys);
//獲取主鍵 resultset getgeneratedkeys()
resultset set = ps.getgeneratedkeys();//返回主鍵結果集
while(set.next())
preparestatement
的方法執行語句:
preparedstatementps = null;
ps =c.preparestatement(sql,statement.return_generated_keys);
resultsetset1 = ps.getgeneratedkeys();
while(set1.next())
types類:
publicclass type***tends object:定義用於標識一般 sql 型別(稱為 jdbc 型別)的常量的類。
常量字段值:
JDBC新增資料
使用drivergetconnect 取得的連線物件是connection型別,如果要對資料庫中的資料進行操作,我們還需要該物件取得另乙個物件來傳送sql語句,要取得這個傳送sql語句的物件我們需要用到connnetion中的這些方法 void close 關閉資料庫連線,使用完資料庫連線之後必須關...
向dataTable中新增資料時附帶主鍵資訊
最近在做專案的時候遇到乙個問題,需要將原有的資料取出後裝進datatable中,但在操作datatable中發現又需要資料的主鍵資訊,利於datatable的primarykey屬性根本就拿不到主鍵值。最後通過查閱資料發現,當要把資料拿出來的時候需要設定拿出資料附帶主鍵屬性 不知道這麼說跟時間原理是...
mybatis新增資料後怎麼返回主鍵
在新增資料的時候,主鍵有的時候是自增的,新增的時候是不是需要填寫的,但是如果恰巧需要怎麼辦呢?如下 設定 insertusergroup parametertype usergroup usegeneratedkeys true keyproperty gid insert into user gr...