JDBC學習筆記(七) 返回自動主鍵

2021-07-10 18:16:16 字數 1277 閱讀 7644

同時將資料插入主表和子表中時。

需求:增加乙個新部門,同時增加乙個該部門的新員工。

思路1:先讓sequence產生nextval並記錄下來,再分別新增主表和子表

這種思路可行,但是需要多訪問一次資料庫,影響效能。

思路2:先插入新部門,然後返回該部門編號,再接著插入員工。

對比思路1有了效能上的優化。

返回該部門編號,就要用到getgeneratedkeys()方法,使用此方法獲取自增資料,效能良好,只需要一次互動。

要想使用該方法,在新建preparedstatement解析sql語句時,就要傳入第二個引數:

乙個string陣列,陣列中記錄的是要generatedkeys記錄的欄位名。

**實現:

public void testgeneratedkeys());    //第二個引數是要獲取的欄位名陣列  

ps.setstring(1,"市場部");

ps.setstring(2,"濟南");

ps.executeupdate();

resultset rs = ps.getgeneratedkeys(); //此方法會返回乙個結果集

rs.next(); //呼叫結果集

int deptno = rs.getint(1); //通過列數獲取部門編號。

sql = "insert into emps values(emps_seq.nextval,?,?,?,?,?,?,?)"; //標準流程增加員工。

ps.setstring(1,ename);

ps.setstring(2,job);

ps.setint(3, mgr);

ps.setdate(4, hiredate);

ps.setdouble(5, sal);

ps.setdouble(6, com);

ps.setint(7, deptno);

ps.executeupdate();

con.commit();

}catch(sqlexception e)catch(sqlexception e1)

e.printstacktrace();

throw new runtimeexception("增加部門和員工失敗",e);

}finally

system.out.println("增加成功");

}

Mybatis Plus學習筆記(七) 主鍵策略

本系列部落格其他文章下方鏈結檢視 mybatis plus學習筆記 目錄 mp的主鍵策略定義在列舉類idtype中 資料庫id自增 auto 0 該型別為未設定主鍵型別 none 1 使用者輸入id 該型別可以通過自己註冊自動填充外掛程式進行填充 input 2 以下3種型別 只有當插入物件id 為...

Ibatis (七) 自動生成主鍵

很多資料庫支援自動生成主鍵的資料型別。不過這通常 並不總是 是個私有的特性。sql map通過的子元素來支援自動生成的鍵值。它同時支援預生成 如oracle 和後生成兩種型別 如ms sql server 1.建表,將id設定為主鍵,且需加上auto increment設定為自動增加 create ...

jdbc獲取自動生成的主鍵

在我們設定設計表時,會設定主鍵,自動增長的主鍵 有時候我們插入資料時,要想知道我們生成的主鍵是多少 就比如這個需求場景 現在註冊賬號的前面是挺簡單的,但是後面要填很多資訊,使用者註冊時,新增使用者名稱,密碼後 就插入到資料庫當中 然後就跳轉成完善個人資訊頁 完善資訊更新到剛插入的那個記錄當中,所以要...