iBATIS技巧
現在項目中使用ibatis作為數據庫操作工具,在深感ibatis功能強大的同時,一直也在為如何寫出動態SQL而困惑,自己也是在一點點的摸索中,現在發現prepend這個小工具確實不錯,下面就是在項目中自己摸索的幾個小用法。
1:通常用法,也是大多數參考文章上面介紹的方法
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"
posted on 2006-12-16 15:06 風人園 閱讀(356) 評論(0) 編輯 收藏 所屬分類: DAO