在一對多的關聯操作中,通常在一方插入記錄後,需要獲取到當前記錄的id,以方便進行多方的插入操作。要解決這一問題,在jdbc中至少有三種不同的實現方法:
1.在插入語句後新增一條查詢,利用resultset來得到id號
psmt = con.preparestatement
("insert into orders (receiver,address,telephone,total,detailnum,userid)values(?,?,?,?,?,?);select
@@identity");
psmt.setstring(1, order.getreceiver());
……results = psmt.executequery();
if(results.next())
2.利用generatedkey來獲取id
psmt = con.preparestatement
("insert into orders (receiver,address,telephone,total,detailnum,userid)values
(?,?,?,?,?,?)",statement.return_generated_keys);
psmt.setstring(1, order.getreceiver());
……psmt.executeupdate();
results = psmt.getgeneratedkeys();
int num = -1;
if(results.next())
3.呼叫儲存過程來實現,當然這種情況下,插入物件的屬性不宜過多,否則儲存過程的輸入引數太多。在儲存過程中,將id作為輸出引數返回
callablestatement proc = conn.preparecall("");
proc.setstring(1, cardname);
proc.setint(2, money);
proc.registeroutparameter(3, types.integer);
proc.execute();
num = proc.getint(3)
利用JDBC獲取新插入記錄id的三種方法
在一對多的關聯操作中,通常在一方插入記錄後,需要獲取到當前記錄的id,以方便進行多方的插入操作。要解決這一問題,在jdbc中至少有三種不同的實現方法 1.在插入語句後新增一條查詢,利用resultset來得到id號 psmt con.preparestatement insert into orde...
MyBatis 獲取插入記錄的 id
現在的專案改用 guns 了,也是乙個很不錯的框架,用起來也感覺很不錯,上手也挺方便的。畢竟對於只是應用層面的知識,也基本上就是看看手冊,熟悉熟悉就可以輕鬆上手了。如果是想要深入,或者刨根問底,那麼就需要有一定的基本功了,比如需要完全熟練掌握 j a 的語法特性,熟悉設計模式 對於我而言,暫時還是達...
JDBC獲取插入記錄的主鍵值
實現方案 實現 jdbc 返回插入記錄的主鍵值 實現要求 前提是表的主鍵必須是自增長的 param clazz param sql insert into userinfos username,password,date,address values param args return public...