动态sql就可以解决相关的多表链接查询以及模糊查询的问题
<select id="SelectEemployee" parameterClass="string" resultMap = "MemberMap">
select CardNo,Name from Member
<dynamic prepend="WHERE">
<isParameterPresent>
User_ID = #value#
</isParameterPresent>
</dynamic>
</select>
动态sql写法
<dynamic prepend ="WHERE"> 表示动态sql开始,如果关联表 prepend ="AND",可以为""
<关键字
<!—关键字可以为以下 相关含义
<isEqual> 参数等于值
<isNotEqual> 参数不等于值
<isGreaterThan> 参数大于值
<isGreaterEqual> 参数大于等于值
<isLessEqual> 参数小于等于值
<isPropertyAvailable> 参数被使用
<isNotPropertyAvailable> 参数没有使用
<isNull> 参数 is null
<isNotNull> 参数 is not null
<isEmpty> 参数为空
<isNotEmpty> 参数不为空
<isParameterPresent> 参数类不为NULL
<isNotParameterPresent> 参数类为NULL
-- >
prepend="AND" 连接关键字
property="UserID" 参数
compareValue="20"> 值,也可以为属性名来比较
</关键字>
1.相关sql ,就是动态sql要添加的条件,比如:
Name =#value#
2.重复元素,这个属性适合一个集合,比如SQL中的in 后的集合等
<iterate prepend="AND" 连接关键字
property="NameList" 参数
open="(" open后的串为开始括号作用“(”
close=")" close后的串为结束括号作用“)”
conjunction="OR"> 连接方式 AND 或OR,每个元素之间的符号
Name=#NameList[]#
</iterate>
--以上相当与SQL
And Name = (/open #NameList[0] or/conjunction #NameList[1] or ….)/close
</dynamic>
但如果进行动态sql操作的话,就相当麻烦了,不如采用存储过程,在存储过程中操作即可。
在xml中配置简单的增,删,改,查功能,如一句sql就可以解决的问题再在xml中配置能让使用更加方便,快捷。
最近遇到一个问题,如果所有xml中的id重合的话不行,注意这个问题。起名字的话加个V1啥的。