IBatisNet使用方法(五)动态SQL
动态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>
基本操作讲解完毕,相信简单的应用已经够大家使用了。如有深入的了解再继续探讨