JDBC中新增資料獲取主鍵的方法

2021-08-19 22:04:29 字數 1716 閱讀 2964

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...