iBATIS非查詢標籤2

2021-08-30 09:19:14 字數 1412 閱讀 7345

繼續ibatis非查詢標籤

1 自動生成的鍵

每個插入的記錄都會生成乙個主鍵用於區分不同的記錄,在各種資料庫裡提供了不同生成主鍵的方式,ibatis很好地解決了重複取得同一鍵值的問題

insert into user

( userid,username, password, department

)values(

#userid#,

#username#,

#password#,

#department#

) select last_insert_id()

keyproperty 那個對應資料庫裡對應主鍵的屬性,resultclass返回的型別,select last_insert_id() 獲得鍵值的方法,不同的資料庫方法不同

<

!—oracle sequence example -->

select stockidsequence.nextval as id from dual

insert into product (prd_id,prd_description)

values (#id#,#description#)

insert into product (prd_description)

values (#description#)

select @@identity as id

insert語句可以放在主鍵生成之前也可以放在之後
integer returnvalue=(integer)sqlmap.insert("insertoneuser",user) 可以返回插入的主鍵

2 儲存過程

在使用的資料庫裡已有生成的儲存過程,配置檔案裡配置如下:

new_proc為已定義好的儲存過程名,用call呼叫,傳入乙個引數就傳乙個?

測試類:

//呼叫儲存過程

map m=new hashmap(1);

m.put("name", new string("lisi"));

sqlmap.update("pro_insert",m);

integer i=(integer)sqlmap.queryforobject("pro_insert",m);

3 批量處理

一次將多條語句提交給資料庫而不是一條一條提交,可以提公升優勢和效能

sqlmap.startbatch();

sqlmap.insert("insertoneuser",user1);

sqlmap.insert("insertoneuser",user2);

sqlmap.executebatch();

#結束

ibatis多表查詢

我們先來看看這兩張表 表名 tbl student 字段 id,name,class id 表名 tbl class 字段 id,name 很簡單的乙個邏輯,班級下邊有很多學生。我們先對學生表做簡單的查詢。model public class student select id,name,class...

ibatis 動態查詢

最近專案需要,做了乙個動態查詢。把查詢結果返回到頁面上顯示。要查詢的字段和表名都是動態的,是在後台拼出來的。可是在ibatis中執行的時候總報 列名無效 在sql plus中執行則正常。百思不得其解。後來通過查資料,解決如下 select t.creator,t.create dt,decode o...

ibatis 動態查詢

在複雜查詢過程中,我們常常需要根據使用者的選擇決定查詢條件,這裡發生變化的 並不只是sql 中的引數,包括select 語句中所包括的字段和限定條件,都可能發生變 化。典型情況,如在乙個複雜的組合查詢頁面,我們必須根據使用者的選擇和輸入決定查 詢的條件組合。乙個典型的頁面如下 對於這個組合查詢頁面,...