主題 ibatis中prepend的小用法

2021-06-19 04:11:16 字數 1374 閱讀 2314

現在專案中使用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...