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>

 

 

 

但如果进行动态sql操作的话,就相当麻烦了,不如采用存储过程,在存储过程中操作即可。

在xml中配置简单的增,删,改,查功能,如一句sql就可以解决的问题再在xml中配置能让使用更加方便,快捷。

最近遇到一个问题,如果所有xml中的id重合的话不行,注意这个问题。起名字的话加个V1啥的。

你可能感兴趣的:(sql,xml)