在iBATIS中isNull用于判断参数是否为Null,isNotNull相反
isEmpty判断参数是否为Null或者空,满足其中一个条件则其true
isNotEmpty相反,当参数既不为Null也不为空是其为true
判断之后做相对应的表达式操作:
例如:
<typeAlias alias="RiskDetail" type="com.taobao.riskm.domain.RiskDetail" />
<update id="updateByCatalogCode" parameterClass="RiskDetail">
update riskm_detail
set
<dynamic>
<isNotNull property="level">
`level`=#level#,
</isNotNull>
<isNotNull property="explainText">
`explaintext`=#explainText#,
</isNotNull>
<isNotNull property="rectification">
`rectification`=#rectification#,
</isNotNull>
<isNotNull property="answering">
`answering`=#answering#,
</isNotNull>
<isNotNull property="reservedString">
`reservedstring`=#reservedString#,
</isNotNull>
<isNotNull property="operator">
`operator`=#operator#,
</isNotNull>
</dynamic>
`modifytime`=now()
where `catalogcode`=#catalogCode#;
</update>
又如:
<select id="getCustomerRegNum" resultClass="int" parameterClass="QueryCustomerCondition">
select count(cus_id) from cus_customer_tbl
<dynamic prepend="WHERE">
<isNotEmpty prepend="AND" property="cusWebFrom">
( CUS_CUSTOMER_TBL.CUS_WEB_FROM LIKE '%$cusWebFrom$%')
</isNotEmpty>
<isNotEmpty prepend="AND" property="cusWebAgent">
( CUS_CUSTOMER_TBL.CUS_WEB_AGENT LIKE '%$cusWebAgent$%')
</isNotEmpty>
</dynamic>
</select>
分享到:
相关推荐
ELEMENT dynamic (#PCDATA | include | iterate | isParameterPresent | isNotParameterPresent | isEmpty | isNotEmpty | isNotNull | isNull | isNotEqual | isEqual | isGreaterThan | isGreaterEqual | ...
利用 `<dynamic>` 标签和 `<isNotEmpty>`, `<isNotNull>` 等子标签,可以灵活地控制SQL语句的生成。这对于实现复杂的查询条件非常有用,特别是在处理大量参数和不确定条件的情况下。此外,通过设置 `open` 和 `close...
4. `<isNotNull>`:检查属性是否非null。 5. `<isEmpty>`:检查集合、字符串或其转换值是否为空。 6. `<isNotEmpty>`:检查集合、字符串或其转换值是否非空。 ### `<iterate>`标签 `<iterate>`标签用于遍历列表类型...
在动态查询条件中,iBatis 提供了多种判断参数的方法,例如 `isNotNull`、`isNotEmpty`、`isGreaterThan` 等,这些方法可以根据参数的值来生成不同的 SQL 语句。 下面是一个简单的示例,演示如何使用 iBatis 的动态...
- 结合 `<isNotNull>`、`<isLessThan>` 等标签,可以根据 Map 中的数据动态生成 SQL 语句。 2. **示例代码**: ```xml select id, note from Product <!-- isPropertyAvailable 判断属性是否有效 --> ...
例如,在上面的示例代码中,我们使用 `<dynamic>` 元素来定义动态 SQL 语句,在其中使用 `<isNotNull>`、`<isGreaterThan>`、`<isLessThan>` 等元素来构建条件语句。 这些元素可以根据参数的值动态地生成 SQL 语句...
通过isNotNull、isNotEmpty和isNotEqual等标签,可以根据Java对象中的属性值动态地生成SQL条件片段。 4. 模糊查询:模糊查询用于匹配包含特定字符串的记录。例如,使用like关键字配合SQL中的通配符“%”,可以在...
3. **一元标签**:用于判断某个属性的存在与否,如 `<isNotNull>`、`<isEmpty>` 等。 4. **`<iterate>`**:用于循环迭代一个集合中的元素。 #### 三、`<dynamic>` 标签详解 `<dynamic>` 标签是最常用的动态 SQL ...
- `<isNotNull>`:检查某个属性是否不为null。 - `<isEmpty>`:检查某个属性是否为空,对于集合来说是其大小是否为0,对于字符串来说是其长度是否为0或是否为null。 - `<isNotEmpty>`:检查某个属性是否非空,对于...
在Java Web开发中,iBatis(现在称为MyBatis)是一个流行的持久层框架,它提供了灵活的SQL映射机制,使得数据库操作更加便捷。在iBatis中,`<iterate>`标签是一个非常实用的功能,它允许我们处理集合数据,如数组、...
### ibatis应对批量update 在处理大量数据更新时,传统的for循环方式往往会导致效率低下。这是因为每一次循环都需要执行一次数据库连接操作,对于批量更新来说,这样的处理方式显然不够高效。为了解决这个问题,...
**标题与描述解析** 本文档集是"Ibatis官方中文文档",包含两份重要的资源:《iBATIS-SqlMaps-2_cn.pdf》和《iBATIS-SqlMaps-2-Tutorial_cn.pdf》。这两份文档详尽地介绍了iBATIS这一持久层框架的使用方法,特别是...
### ibatis中输入输出各种类型的参数分析及#与$区别 #### iBatis简介与特点 iBatis作为一款轻量级的Java持久层框架,以其简洁、灵活的特点,在众多框架中占据一席之地。相较于知名的Hibernate框架,iBatis在实现上...
其次,属性设置详解涉及到的是如何在iBATIS中设置和获取Java对象的属性,以及如何将这些属性与数据库表字段对应。在映射文件中,我们可以定义`<resultMap>`来映射对象属性和字段,使用`<id>`、`<result>`等元素来...
`<isNotNull>`和`<isNotEmpty>`则分别用于判断参数是否非空和字符串是否非空,进而决定是否加入相应的过滤条件。 ### 安全高效:IBATIS与JDBC对比 IBATIS(MyBatis)相较于传统的JDBC,有以下优势: 1. **安全性*...
确保`parameterClass`和`resultClass`属性与实际参数类型和返回类型相匹配,正确使用动态SQL标签如`<isNotNull>`,并注意`#`和`{}`之间的区别,这些都是避免常见错误的关键。通过仔细检查和测试,开发者可以充分利用...
- iBatis .NET简介:介绍iBatis .NET的基本概念、设计理念以及与传统数据访问方式的区别。 - 安装与配置:指导如何在.NET项目中引入iBatis .NET,以及如何设置配置文件。 - 数据库映射:讲解如何创建XML映射文件或...
Ibatis 是一款轻量级的Java持久层框架,它允许开发者将SQL语句与Java代码分离,从而使得数据库访问更加灵活、易于维护。本篇文章将深入探讨Ibatis的核心概念、最佳实践以及与其他框架如Struts和Spring的整合。 1. ...
虽然 iBatis 在某些方面与 Hibernate 类似,但它们之间的主要区别在于 iBatis 提供了更细粒度的 SQL 控制能力,这使得 iBatis 在复杂查询或性能敏感的应用场景中更具优势。 ### 二、动态 SQL 的概念 在实际应用中...