现在项目中使用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"