該文是對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...