現在專案中使用ibatis作為資料庫操作工具,在深感ibatis功能強大的同時,一直也在為如何寫出動態sql而困惑,自己也是在一點點的摸索中,現在發現prepend這個小工具確實不錯,下面就是在專案中自己摸索的幾個小用法。
xml **
<
dynamic
prepend="where"
>
<
isnotempty
prepend="and"
property="csenduserid"
>
csenduserid = #csenduserid#
isnotempty
>
dynamic
>
2:通常用法的小小擴充,在裡面增加乙個and
xml **
<
dynamic
prepend="where"
>
<
isnotempty
prepend="and"
property="csenduserid"
>
csenduserid = #csenduserid#
and
isenddr = 0
isnotempty
>
dynamic
>
3:在資料庫表連線處使用,自己以前從來沒有過的想法:)
xml **
<
dynamic
prepend="left outer join cms_user u on "
>
<
isnotempty
prepend=""
property="creceiveuserid"
>
m.csenduserid = u.pk_user
isnotempty
>
dynamic
>
4:檢索條件處使用,動態增加檢索條件
xml **
<
dynamic
prepend=""
>
<
isnotempty
prepend=""
property="creceiveuserid"
>
,csenduserid
,u.vtruename as sendusername
isnotempty
>
dynamic
>
需要注意的是,檢索的時候,如果動態檢索條件的話,需要增加remapresults="true"
ibatis中SqlMapClient事務處理
ibatis中sqlmapclient事務 sqlmapclient.starttransaction 開始事務sqlmapclient.committransaction 提交事務sqlmapclient.endtransaction 結束事務,操作失敗的時候,整個事務就會在endtransact...
iBATIS中statement ID命名衝突
在用ibatis開發軟體時,需要寫很多sqlmap xml檔案,尤其是多人開發時候,這樣就會造成statement中的id會發生命名衝突,比如 在a.xml b.xml中,有以下片斷 a.xml b.xml 兩個sqlmap file都有id為 abcd 的配置,如果這種情況,執行setsqlmap...
ibatis中應用技巧
ibatis中經常遇到乙個公用的sql被多處呼叫的情況。比如許可權驗證這塊,我需要知道每次使用者取出的資源驗證對其是否有許可權,則需要對取出的資源列表做乙個過濾。資源表結構大致如下 sys res row id 資源id sys sys res row id 上級資源id system row id...