iBatis中的动态查询
来源:互联网 发布:刷票软件 微信安卓 编辑:程序博客网 时间:2024/05/17 22:18
如果想深入学习,可以参考 Manning. iBATIS.in.Action.Jan.2007
下面给出几个例子和dtd定义:
< selectid="selectDispatchedKey" parameterClass="KeyAndKeyFlowInfo" resultMap="KeyAndKeyFlowResult">
select distinct
KEY_ID,
USER_ID,
INITIATOR,
INIT_DATE,
INITIATOR_EMAIL,
SGS_KEY.BRANCH_NAME,
APPROVER,
APPROVER_EMAIL,
APPROVE_DATE
from
SGS_KEY,
SGS_KEY_FLOW
where SGS_KEY.APPLY_FLOW_ID=SGS_KEY_FLOW.KEY_FLOW_ID
< dynamicprepend="and" open="(" close=")">
< isNotNullproperty="ki.userId" prepend="and" removeFirstPrepend="false">
USER_ID = #ki.userId#
</ isNotNull>
< isNotNullproperty="kfi.initiator" prepend="and">
INITIATOR = #kfi.initiator#
</ isNotNull>
< isNotNullproperty="kfi.initDate" prepend="and">
INIT_DATE = #kfi.initDate#
</ isNotNull>
</ dynamic>
< /select>
< updateid="updateKeyFlow" parameterClass="KeyFlowInfo">
update SGS_KEY_FLOW set
< dynamic>
KEY_FLOW_ID =#keyFlowId#
<isNotNull property="branchName" prepend=",">
BRANCH_NAME = #branchName#
</isNotNull>
<isNotEqual property="operation" prepend="," compareProperty="operation" compareValue="0">
OPERATION = #operation#
</isNotEqual>
<isNotNull property="initiator" prepend=",">
INITIATOR = #initiator#
</isNotNull>
<isNotNull property="initiatorEmail" prepend=",">
INITIATOR_EMAIL = #initiatorEmail#
</isNotNull>
<isNotNull property="initDate" prepend=",">
INIT_DATE = #initDate#
</isNotNull>
<isNotNull property="approver" prepend=",">
APPROVER = #approver#
</isNotNull>
<isNotNull property="approverEmail" prepend=",">
APPROVER_EMAIL = #approverEmail#
</isNotNull>
<isNotNull property="approveDate" prepend=",">
APPROVE_DATE = #approveDate#
</isNotNull>
<isNotEqual property="keyNum" prepend="," compareProperty="keyNum" compareValue="0">
KEY_NUM = #keyNum#
</isNotEqual>
<isNotNull property="applyReason" prepend=",">
APPLY_REASON = #applyReason#
</isNotNull>
<isNotNull property="rejectReason" prepend=",">
REJECT_REASON = #rejectReason#
</isNotNull>
</ dynamic>
where
KEY_FLOW_ID =#keyFlowId#
< /update>
属性关键字
含义
<isEqual>
如果参数相等于值 则查询条件有效。
<isNotEqual>
如果参数不等于值则查询条件有效。
<isGreaterThan>
如果参数大于值则查询条件有效。
<isGreaterEqual>
如果参数等于值则查询条件有效。
<isLessEqual>
如果参数小于值则查询条件有效。如下所示:
<isLessEqual prepend = ”AND” property = ”age” compareValue = ”18” >
ADOLESCENT = ‘TRUE’
</isLessEqual>
< isPropertyAvailable>
如果参数有使用则查询条件有效。
<isNotPropertyAvailable>
如果参数没有使用则查询条件有效。
<isNull>
如果参数为NULL则查询条件有效。
<isNotNull>
如果参数不为NULL则查询条件有效。
<isEmpty>
如果参数为空则查询条件有效。
<isNotEmpty>
如果参数不为空则查询条件有效 。参数的数据类型为 Collection 、 String 时参数不为 NULL 或“”。如下所示:
<isNotEmpty prepend=”AND” property=”firstName” >
FIRST_NAME=#firstName#
< /isNotEmpty>
< isParameterPresent>
如果参数类不为NULL 则查询条件有效。
<isNotParameterPresent>
Checks to see if the parameter object is not present (null). Example Usage:
< isNotParameterPresent prepend=”AND”>
EMPLOYEE_TYPE = ‘DEFAULT’
</isNotParameterPresent>
下面给出几个例子和dtd定义:
< selectid="selectDispatchedKey" parameterClass="KeyAndKeyFlowInfo" resultMap="KeyAndKeyFlowResult">
select distinct
KEY_ID,
USER_ID,
INITIATOR,
INIT_DATE,
INITIATOR_EMAIL,
SGS_KEY.BRANCH_NAME,
APPROVER,
APPROVER_EMAIL,
APPROVE_DATE
from
SGS_KEY,
SGS_KEY_FLOW
where SGS_KEY.APPLY_FLOW_ID=SGS_KEY_FLOW.KEY_FLOW_ID
< dynamicprepend="and" open="(" close=")">
< isNotNullproperty="ki.userId" prepend="and" removeFirstPrepend="false">
USER_ID = #ki.userId#
</ isNotNull>
< isNotNullproperty="kfi.initiator" prepend="and">
INITIATOR = #kfi.initiator#
</ isNotNull>
< isNotNullproperty="kfi.initDate" prepend="and">
INIT_DATE = #kfi.initDate#
</ isNotNull>
</ dynamic>
< /select>
< updateid="updateKeyFlow" parameterClass="KeyFlowInfo">
update SGS_KEY_FLOW set
< dynamic>
KEY_FLOW_ID =#keyFlowId#
<isNotNull property="branchName" prepend=",">
BRANCH_NAME = #branchName#
</isNotNull>
<isNotEqual property="operation" prepend="," compareProperty="operation" compareValue="0">
OPERATION = #operation#
</isNotEqual>
<isNotNull property="initiator" prepend=",">
INITIATOR = #initiator#
</isNotNull>
<isNotNull property="initiatorEmail" prepend=",">
INITIATOR_EMAIL = #initiatorEmail#
</isNotNull>
<isNotNull property="initDate" prepend=",">
INIT_DATE = #initDate#
</isNotNull>
<isNotNull property="approver" prepend=",">
APPROVER = #approver#
</isNotNull>
<isNotNull property="approverEmail" prepend=",">
APPROVER_EMAIL = #approverEmail#
</isNotNull>
<isNotNull property="approveDate" prepend=",">
APPROVE_DATE = #approveDate#
</isNotNull>
<isNotEqual property="keyNum" prepend="," compareProperty="keyNum" compareValue="0">
KEY_NUM = #keyNum#
</isNotEqual>
<isNotNull property="applyReason" prepend=",">
APPLY_REASON = #applyReason#
</isNotNull>
<isNotNull property="rejectReason" prepend=",">
REJECT_REASON = #rejectReason#
</isNotNull>
</ dynamic>
where
KEY_FLOW_ID =#keyFlowId#
< /update>
属性关键字
含义
<isEqual>
如果参数相等于值 则查询条件有效。
<isNotEqual>
如果参数不等于值则查询条件有效。
<isGreaterThan>
如果参数大于值则查询条件有效。
<isGreaterEqual>
如果参数等于值则查询条件有效。
<isLessEqual>
如果参数小于值则查询条件有效。如下所示:
<isLessEqual prepend = ”AND” property = ”age” compareValue = ”18” >
ADOLESCENT = ‘TRUE’
</isLessEqual>
< isPropertyAvailable>
如果参数有使用则查询条件有效。
<isNotPropertyAvailable>
如果参数没有使用则查询条件有效。
<isNull>
如果参数为NULL则查询条件有效。
<isNotNull>
如果参数不为NULL则查询条件有效。
<isEmpty>
如果参数为空则查询条件有效。
<isNotEmpty>
如果参数不为空则查询条件有效 。参数的数据类型为 Collection 、 String 时参数不为 NULL 或“”。如下所示:
<isNotEmpty prepend=”AND” property=”firstName” >
FIRST_NAME=#firstName#
< /isNotEmpty>
< isParameterPresent>
如果参数类不为NULL 则查询条件有效。
<isNotParameterPresent>
Checks to see if the parameter object is not present (null). Example Usage:
< isNotParameterPresent prepend=”AND”>
EMPLOYEE_TYPE = ‘DEFAULT’
</isNotParameterPresent>
- iBatis中的动态查询
- iBatis中的动态查询
- ibatis中动态查询中的常用属性
- ibatis动态查询条件
- ibatis动态查询条件
- (转)ibatis 动态查询
- ibatis动态字段查询
- ibatis动态查询
- Ibatis动态字段查询
- ibatis的动态查询
- ibatis动态查询条件
- iBatis动态条件查询
- IBatis 动态查询条件
- ibatis动态查询
- ibatis动态查询
- ibatis动态查询条件
- Ibatis动态字段查询
- ibatis动态查询条件
- 找位置
- Struts2.1的异常处理
- 用MongoVUE管理MongoDB MongoDB的管理客户端
- 修炼之道--书单
- 统计量及抽样分布的思考与遐想
- iBatis中的动态查询
- 2639 约会计划 wikioi-Pro2639-解题报告
- 【面试题三】c数组做为参数退化的问题,二维数组中的查找
- fedora20搭建嵌入式开发环境2 - 开发工具安装
- 推荐你认为最不错的3-5个技术或IT社区网站,谢谢!
- oracle修改字段报错:ORA-22858
- vmstat 命令详解
- 25条提高iOS App性能的技巧和诀窍
- C:assert()函数用法