ibatis的動態查詢

2021-05-27 13:40:01 字數 935 閱讀 8336

該文是對ibatis2開發指南中動態對映章節的總結

參考下面典型查詢畫面

查詢條件有姓名和位址,二者都有為空的可能,如果採用傳統的方式,可能需要做下面的查詢語句

select * from t_user;

select * from t_user where name like 『%erica%』 ;

select * from t_user where address like 『%beijing%」;

select * from t_user where name like 『%erica%』 and address like 『%beijing%」

如果條件多了,排列組合後,數量幾何形式增長。這種工作讓人無法忍受。

ibatis的動態查詢就是解決上述的問題。直接看下面的列子

select id, name, *** from t_user

(name like #name#)

(address like #address#)

( name=#name#

address=#address#

)

類似isnotempty的判斷還有下面這些節點

*一元判定 

引數類中是否提供了此屬性

與相反屬性值是否為null

與相反

*二元判定 

相等。

不等。大於

大於等於

小於小於等於

二元判斷的例子

(age=#age#)

ibatis 動態查詢

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

ibatis 動態查詢

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

ibatis動態字段查詢

想要動態的獲取所需要的字段,想來想去沒有想到好的方法,只有下面乙個不成熟的想法,提筆記之,以備改進。極其簡單,一看即明白。有一點要注意的就是remapresults true 一定要設定 快取是把雙刃劍 entity.getfeild map put partner id partner id en...