ibatis dynamic标签 的使用

<!-- 根据给定的参数查询出对应的对账日志记录 -->
    <select id="listByParamMap" parameterClass="java.util.Map" resultClass="AccCheckLog">
        select rl.ID as id,
               rl.STAFF_ID as staffId,
               rl.STAFF_NAME as staffName,
               rl.STAFF_PHONE_NUM as staffPhoneNum,
               rl.ORDER_ID as orderId,
               rl.AWARD_DATE as awardDate,
               rl.PAY_AMOUNT as payAmount,
               rl.ISSUER_ID as issuerId,
               rl.APPFROM as appfrom,
               rl.ISSUER_NAME as issuerName,
               rl.LOG_TIME as logTime,
               rl.TYPE as type,
               rl.COMMENTS as comments,
               rl.CHECK_RESULT_CODE as checkResultCode
          from INFO_AWARD_COUPON_RECORD_LOG rl
          <dynamic prepend="where">
                <isNotNull property="appfrom" prepend="and">
                        rl.APPFROM = #appfrom#
                </isNotNull>
                <isNotNull property="staffId" prepend="and">
                        rl.STAFF_ID = #staffId#
                </isNotNull>
                <isNotNull property="orderId" prepend="and">
                        rl.ORDER_ID = #orderId#
                </isNotNull>
                <isNotNull property="logTimeStart" prepend="and">
                        <![CDATA[rl.LOG_TIME >= to_date(#logTimeStart#,‘yyyymmdd‘)]]>
                </isNotNull>
                <isNotNull property="logTimeEnd" prepend="and">
                        <![CDATA[rl.LOG_TIME <= to_date(#logTimeEnd#,‘yyyymmdd‘)]]>
                </isNotNull>
                <isNotNull property="checkResultCode" prepend="and">
                        rl.CHECK_RESULT_CODE = #checkResultCode#
                </isNotNull>
                <isNotNull property="checkResultCodeNEq1" prepend="and">
                        rl.CHECK_RESULT_CODE != #checkResultCodeNEq1#
                </isNotNull>
          </dynamic>
    </select>

dynamic的prepend只要检测到第一个为“真”的条件比较元素(isNotNull标签),则覆盖其prepend属性并组装where关键字为动态SQL的一部分.

时间: 2024-10-14 08:13:11

ibatis dynamic标签 的使用的相关文章

ibatis XML标签的含义

selectKey: 有3个主要的属性: 1)resultClass:返回的主键的数据类型,跟sqlMap中的数据类型一致: 2)type:表示主键在insert之前或之后生成(取决于数据库的主键生成策略),取值分别为[pre|post],非必须,未填写时如果在insert之前表示pre,否则表示post: 3)keyProperty:返回值保存到的属性,非必须(作用参见Oracle配置): <selectKey property="DeliHeadId" type="

ibatis iterate标签

原文地址:http://www.blogjava.net/kyleYang/archive/2010/02/02/311688.html Iterate:这属性遍历整个集合,并为 List 集合中的元素重复元素体的内容. Iterate 的属性:       prepend  - 可被覆盖的 SQL 语句组成部分,添加在语句的前面(可选)       property  - 类型为 java.util.List 的用于遍历的元素(必选)       open  -  整个遍历内容体开始的字符串,

ibatis 常用标签

prepend:自动在前面加上:自动新手:自动预:自动前置 property:属性 compareValue:指定的常数,值 1 //判断不相等: 2 3 <isNotEqual prepend=" and " property="name" compareValue="intnumber"> 4 5 ===条件=== 6 7 </isNotEqual> 8 9 10 11 //判断相等: 12 13 <isEqua

转:ibatis常用16条SQL语句

1.输入参数为单个值 <delete id="com.fashionfree.stat.accesslog.deleteMemberAccessLogsBefore" parameterClass="long"> delete from MemberAccessLog where accessTimestamp = #value# </delete> <delete id="com.fashionfree.stat.acces

iBatis.net入门指南

iBatis.net入门指南    - 1 - 什么是iBatis.net ?    - 3 - iBatis.net的原理    - 3 - 新人指路    - 3 - iBatis.net的优缺点    - 4 - SQL Mapping金典案例    - 5 - 情景一 基本标签(insert,update ,select)及属性(parameterClass,resultClass)    - 5 - 情景二 子标签(<sql /><include />)及转义处理    

IBATIS动态SQL--&lt;dynamic&gt;[email&#160;protected]@Identity

一.<dynamic><isNotNull> <!-- select 基本语句 --> <select id="tbhyScenarioSetting.select" parameterClass="tbhyScenarioSettingDomain" resultClass="tbhyScenarioSettingDomain"> select id as id, gmt_create as gm

ibatis常用sql

(1) 输入参数为单个值 Xml代码 <delete id="com.fashionfree.stat.accesslog.deleteMemberAccessLogsBefore" parameterClass="long"> delete from MemberAccessLog where accessTimestamp = #value# </delete> <delete id="com.fashionfree.st

Objective-C isa 指针 与 runtime 机制

一.isa指针 要认识什么是isa指针,我们得先明确一点: 在Objective-C中,任何类的定义都是对象.类和类的实例(对象)没有任何本质上的区别.任何对象都有isa指针. 那么什么是类呢?在xcode中用快捷键Shift+Cmd+O 打开文件objc.h 能看到类的定义: 可以看出: Class 是一个 objc_class 结构类型的指针, id是一个 objc_object 结构类型的指针. 我们再来看看 objc_class 的定义: 稍微解释一下各个参数的意思: isa:是一个Cl

Objective C运行时(runtime)技术总结

Objective C的runtime技术功能非常强大,能够在运行时获取并修改类的各种信息,包括获取方法列表.属性列表.变量列表,修改方法.属性,增加方法,属性等等,本文对相关的几个要点做了一个小结. (1)在运行时对函数进行动态替换 : class_replaceMethod 使用该函数可以在运行时动态替换某个类的函数实现,这样做有什么用呢?最起码,可以实现类似windows上hook效果,即截获系统类的某个实例函数,然后塞一些自己的东西进去,比如打个log什么的. 示例代码: IMP org