`
sodinger
  • 浏览: 3507 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

MyBatis的<isNotNull>标签

阅读更多

标签<isNull>用于判断参数是否为Null,为Null时,执行标签体内的语句。

标签<isNotNull>用于判断参数是否不为Null,不为Null时,执行标签体内的语句。

标签<isEmpty>判断参数是否为Null或者空(空字符串),满足其中一个条件则其true,执行标签体内的语句。

标签<isNotEmpty>判断参数是否同时不为Null且不为空(空串),当参数既不为Null也不为空是其为true, 判断之后做相对应的表达式操作。

 

具体如下:

以<isNotNull>标签为例:

当name不是null时,就在set后动态添加name = #name:varchar#,

当name是null时,就不执行该标签,set后不会有name=...,也就是修改时不会去修改name的值。

属性prepend=","就是执行该标签后,在执行体的后面添加逗号(,)。

当然set也需要动态添加,否则更新字段都为null的话,该SQL语句就报错了。

 

  • 大小: 33.9 KB
分享到:
评论

相关推荐

    ibats动态插入避免抛xx列类型不存在错误异常

    - **动态SQL构建**:使用`&lt;isNotNull&gt;`标签可以动态地根据传入参数构建SQL语句,避免了硬编码SQL带来的灵活性不足的问题。 - **类型检查**:通过显式指定字段类型,可以确保SQL语句中的字段类型与数据库中定义的类型...

    ibatis的错误总结

    确保`parameterClass`和`resultClass`属性与实际参数类型和返回类型相匹配,正确使用动态SQL标签如`&lt;isNotNull&gt;`,并注意`#`和`{}`之间的区别,这些都是避免常见错误的关键。通过仔细检查和测试,开发者可以充分利用...

    MyBatis动态SQL标签用法实例详解

    &lt;isNotNull property="_size"&gt;limit #_start#, #_size#&lt;/isNotNull&gt; &lt;/isNotNull&gt; &lt;/dynamic&gt; &lt;/sql&gt; ``` 这些动态SQL片段可以根据业务需求进行组合和拼接,以生成不同的SQL语句。 二、数字范围查询 在本实例中...

    MyBatis 动态 SQL:灵活而强大的查询构建器.pdf

    status IS NOT NULL &lt;/otherwise&gt; &lt;/choose&gt; &lt;/where&gt; &lt;/select&gt; ``` 这里使用了 `&lt;choose&gt;`、`&lt;when&gt;` 和 `&lt;otherwise&gt;` 来实现多条件的选择,使得 SQL 语句能够根据不同情况生成不同的结果。 ##### 示例 3:...

    mybatis条件查询

    在MyBatis中,条件查询主要通过动态SQL实现,这通常涉及到`&lt;if&gt;`, `&lt;choose&gt;`, `&lt;when&gt;`, `&lt;otherwise&gt;`, `&lt;where&gt;`等标签。这些标签可以嵌套使用,帮助我们在XML映射文件中构造动态SQL片段。 1. `&lt;if&gt;`标签:这是...

    iBatis的动态SQL语句

    - `&lt;isNotNull&gt;`:检查某个属性是否不为null。 - `&lt;isEmpty&gt;`:检查某个属性是否为空,对于集合来说是其大小是否为0,对于字符串来说是其长度是否为0或是否为null。 - `&lt;isNotEmpty&gt;`:检查某个属性是否非空,对于...

    MyBatis动态SQL是一项强大的特性,它允许我们在编写SQL语句时根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的

    AND age IS NOT NULL &lt;/otherwise&gt; &lt;/choose&gt; ``` #### 3. `&lt;trim&gt;`标签 - **用途**:用于去除SQL语句中的前导和尾随空白字符,以及控制SQL语句中逗号的使用。 - **示例**: ```xml &lt;trim prefix="WHERE" ...

    什么是mybatis动态sql以及学习mybatis动态sql的意义

    IS NOT NULL &lt;/otherwise&gt; &lt;/choose&gt; &lt;/select&gt; ``` 此示例中,根据`status`的值选择合适的条件加入到SQL语句中。 #### trim/where/set标签 `trim`标签可以用来去除多余的前缀或后缀字符(如多余的逗号或空格)...

    MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据

    AND age IS NOT NULL &lt;/otherwise&gt; &lt;/choose&gt; ``` - 当多个条件满足时,只会执行第一个满足的`&lt;when&gt;`块。 3. **&lt;trim&gt;**:用于移除多余的前缀或后缀,比如多余的逗号或空格。 - 示例: ```xml &lt;trim ...

    MyBatis动态SQL详解.pdf

    and state is not null &lt;/otherwise&gt; &lt;/choose&gt; ``` **2.2.3 `trim`(`where`、`set`)元素** `trim`元素主要用于去除SQL语句开头或者结尾的空白字符或指定的字符,如`where`或`set`关键字后面的空格或逗号。...

    MyBatis自动生成Where语句

    这导致了一个非SARGable(无法使用索引进行搜索)的条件`OrderId IS NOT NULL`,使得SQL Server不得不进行全表扫描,而非利用索引来快速定位记录。 当`OrderId IS NOT NULL`条件不存在时,执行计划会更优,因为它能...

    常用ibatis配置

    上述文档中的&lt;isNotNull prepend="limit"&gt;标签用于动态生成带有LIMIT和OFFSET子句的SQL片段,从而实现分页功能。 3. 查询条件:在执行数据库查询时,经常需要根据不同的条件来过滤结果。iBatis允许在配置文件中指定...

    mybatis 练习题(CRUD)的完整代码

    &lt;otherwise&gt;AND status IS NOT NULL&lt;/otherwise&gt; &lt;/choose&gt; ``` - **where**:确保生成的 SQL 语句中 `WHERE` 子句的正确性,避免在没有条件时生成无效的 `WHERE 1=1`: ```xml &lt;where&gt; &lt;if test="name != ...

    Mybatis 中 Oracle 的拼接模糊查询及用法详解

    `org.mybatis.spring.MyBatisSystemException`:nested exception is `org.apache.ibatis.type.TypeException`:Could not set parameters for mapping:ParameterMapping{property='userName', mode=IN, javaType=...

    J2EE与数据库.docx

    &lt;select id="selectUsers" resultType="map"&gt; SELECT * FROM users WHERE username = #{username} &lt;/select&gt; ``` #### 七、Oracle 同义词 **知识点解析:** 同义词在 Oracle 数据库中是一种用于隐藏对象真实名称的...

    java开发记录方法

    Validate.notNull(object, message); Validate.isTrue(expression, message); ``` `Validate`是Apache Commons Validator中的工具类,提供了一些数据验证方法,如检查对象是否为null或条件是否为真。 ### 6. 注解...

Global site tag (gtag.js) - Google Analytics