LYWILL设计运营 - 网站运营与推广、开发技术、成功项目展示。

IBatis.Net使用动态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>

基本操作讲解完毕,相信简单的应用已经够大家使用了。

附上我使用的例子:

XML/HTML代码
  1. <select id="GetLeagueMatchs" parameterClass="Hashtable" resultMap="LeagueMatch_Result">  
  2. select m.match_id,   
  3.        ..........   
  4.  where sl.sub_league_id = #subleagueId#   
  5.    and s.season_year = #seasonYear#   
  6.    <dynamic>  
  7.      <isNotEqual property="roundNo" compareValue="0">  
  8.        and m.round_no = #roundNo#   
  9.      </isNotEqual>  
  10.    </dynamic>  
  11.  order by m.match_time   
  12.     </select>