一,简介

在iBATIS中isNull用于判断参数是否为Null,isNotNull相反
isEmpty判断参数是否为Null或者空,满足其中一个条件则其true
isNotEmpty相反,当参数既不为Null也不为空是其为true
判断之后做相对应的表达式操作

二,区别

 <update id="updateRole" parameterClass="com.mmblue.model.Role">
     <![CDATA[
         UPDATE role
         SET
             gmt_modified = to_date(#gmtModified#,'yyyy-mm-dd hh24:mi:ss'),
             modifier = #modifier#
     ]]>
         <dynamic>
             <isNotEmpty property="isDeleted" prepend=",">
                 <![CDATA[
                     is_deleted = #isDeleted#
                 ]]>
             </isNotEmpty>
             <isNotEmpty property="roleCode" prepend=",">
                 <![CDATA[
                     role_code = #roleCode#
                 ]]>
             </isNotEmpty>
             <isNotEmpty property="roleName" prepend=",">
                 <![CDATA[
                     role_name = #roleName#
                 ]]>
             </isNotEmpty>
             <isNotEmpty property="deptId" prepend=",">
                 <![CDATA[
                     dept_id = #deptId#
                 ]]>
             </isNotEmpty>
         </dynamic>
     <![CDATA[
         WHERE id = #id#
     ]]>
 </update>  

通过上面的代码可以看到假如用isNotEmpty的时候页面假如有值,现在改成空的字符串数据库是不会有效果的,因为isNotEmpty判断的是null和“”这两个属性,所以就不会进这个方法

假如要用的话必须用isNotnull这个值判断null,而不判断“”,所以最后会把有值的改成空的字符串的。

mybatis中动态update中的isNotEmpty和isNotNull标签的更多相关文章

  1. Unity中让Update中的方法执行一次

    Unity中让Update中的方法执行一次 Unity中,很多时候,代码需要放在Update中时刻监测状态,一旦状态符合,又只需要代码执行一次:其实可以通过设置控制量的方式,让代码只执行一次:方法:设 ...

  2. mybatis在动态 SQL 中使用了参数作为变量,必须要用 @Param 注解

    如果在动态 SQL 中使用了参数作为变量,那么就要用 @Param 注解,即使你只有一个参数.如果我们在动态 SQL 中用到了 参数作为判断条件,那么也是一定要加 @Param 注解的,例如如下方法: ...

  3. mybatis的动态sql中collection与assoction

    User.java, Role.java,address.java为三个类 public class User { .....//user自己的属性//association一对一 private R ...

  4. Rigidbody相关的操作最好放在FixedUpdate中,update中可能会无效果

    void Turning() { // Create a ray from the mouse cursor on screen in the direction of the camera. Ray ...

  5. MyBatis动态SQL中trim标签的使用

    My Batis 官方文档 对 动态SQL中使用trim标签的场景及效果介绍比较少. 事实上trim标签有点类似于replace效果. trim 属性 prefix:前缀覆盖并增加其内容 suffix ...

  6. (转)mybatis:动态SQL

    概述:在mybatis中,动态语句是个非常强大和灵活的功能,并且动态语句可以放在sql的任何地方,利用该功能,我们可以写出非常灵活的代码.在mybatis的动态语句中常常可能会用到以下几个运算和逻辑判 ...

  7. mybatis中的.xml文件总结——mybatis的动态sql

    resultMap resultType可以指定pojo将查询结果映射为pojo,但需要pojo的属性名和sql查询的列名一致方可映射成功. 如果sql查询字段名和pojo的属性名不一致,可以通过re ...

  8. Mybatis中动态SQL多条件查询

    Mybatis中动态SQL多条件查询 mybatis中用于实现动态SQL的元素有: if:用if实现条件的选择,用于定义where的字句的条件. choose(when otherwise)相当于Ja ...

  9. MyBatis中动态SQL语句完成多条件查询

    一看这标题,我都感觉到是mybatis在动态SQL语句中的多条件查询是多么的强大,不仅让我们用SQL语句完成了对数据库的操作:还通过一些条件选择语句让我们SQL的多条件.动态查询更加容易.简洁.直观. ...

随机推荐

  1. BZOJ 1061: [Noi2008]志愿者招募 [单纯形法]

    传送门 题意: 长为$n$的序列,第$i$位至少$b_i$,$m$种区间使$[l_i,r_i]+1$代价为$a_i$ 求满足的最小花费 复习单纯形法重做一遍 原始问题$m$个变量$n$个约束,$a_{ ...

  2. linux下ACE的编译与安装

    1.环境变量的设置vim /etc/profile 2.然后输入export ACE_ROOT=/root/ACE/ACE_wrappers export MPC_ROOT=$ACE_ROOT/MPC ...

  3. 广告中的AdNetwork、AdExchange、DSP、SSP、RTB和DMP是什么?

    [https://www.douban.com/note/557732418/?type=rec] AdNetwork.AdExchange.DSP.SSP.RTB.DMP这些模式之间存在着内在的关系 ...

  4. Godep的基本使用

    [http://studygolang.com/articles/4385] 关于Godep 发现好多golang项目都使用到godep作为包管理的工具,像比较大型的项目,比如kubernetes这种 ...

  5. ★MySQL一些很重要的SQL语句

    [mysqldumpslow] -s 排序选项:c 查询次数 r 返回记录行数 t 查询时间  -t 只显示top n条查询  mysqldumpslow -s r -t 10000 slow-que ...

  6. docker容器安装及使用技巧

    关于docker前言 A)首先是关于虚拟化 虚拟化我们可以简单的理解为一种资源管理方式.有如下几种虚拟化的方式: 1.完全虚拟化:对底层硬件实现完全的虚拟.例如:Vmware Workstation ...

  7. 初识Vue——计算属性和观察者

    一.计算属性 在模板内使用 1.基础例子 <template> <div class="main"> <div id="reverse_st ...

  8. entity framework core在独立类库下执行迁移操作

    之前学习EFCore的时候,都是在VS创建的默认模板里面进行的,按照官方文档,直接就可以搞定. 今天新项目准备上.Net Core,打算先按照国际惯例,进行分层,数据访问层是用EFCore来做,于是就 ...

  9. js中判断数组中是否含有某个字符串方法

    1.两个数组间互相校验 Var  inArray = function(arr, item) { for(var i = 0; i < arr.length; i++) { if(arr[i] ...

  10. window7 x64 vs2015 如何编译 libqr 二维码生成库?

    1.下载libqr库 下载地址:https://github.com/rsky/qrcode 注:因 libqr 依赖 zlib 库,所以首先编译 zlib库 zlib 库编译指南:http://ww ...