mybatis isnotnull,mybatis isnull
目录
使用经验不是空的,也不是空的。具体业务需求如下。看看下面两个SQL语句isNull、isNotNull、isEmpty、isNotEmpty之间区别的例子。
00-1010做开发工作久了,需求逐渐梳理后,你会发现大方向已经明确。这时就会进入细节开发环节,这是最繁琐的,也是决定开发质量的关键阶段。最近,我遇到了一个生产问题。必填字段的值已被清除并保存,但无法成功保存。
00-1010客户基本信息可保存或提交后台系统审批。
1.保存的时候,其实是一个临时的功能。只要代理输入的合法值有效,它们就必须被保存并入库。
2.提交审批时,会进行各种验证,包括合法性验证、需求验证、业务逻辑验证等。
生产问题就出在这个保存的功能上,如果一个字段有值,但是坐席清空,点保存,这时候保存没有生效。
其实问题很容易定位。我看了一下代码,发现了问题。但这个问题在生产中一直存在。
主要是堵的问题吗?影响不大,所以有些座位可能发现了,也没在意。他们没有报告生产问题。
原因是:应该使用isNotNull的地方,没有使用isNotEmpty。
以上是从业务的角度来分析的,接下来,我们从技术角度来看一下这个问题。
IsNotNull,顾名思义,不是Null,就是nullisNotEmpty,顾名思义,不是null,就是null,而 (空字符串)的区别很明显,就是是否包含空字符串。对于上面的业务场景,我们需要保存一个空字符串。哪一个?
isNotNull与isNotEmpty使用心得
更新产品PSET UPDATE _ TIME=SYSDATE is notempty prepend= AND property= PRODUCT NAME P . PRODUCT _ NAME=# PRODUCT NAME #/isNotEmpty where P . PRODUCT _ ID=# PRODUCT ID #更新产品PSET UPDATE _ TIME=SYSDATE is not null prepend= AND property= PRODUCT _ NAME P . PRODUCT _ NAME=# PRODUCT NAME #/isNotNullwhere P . PRODUCT _ ID=#当页面传递的值是空字符串时,我们必须确保显然,我们需要使用isnotnull标记。
问题的原因其实很简单,就是复制粘贴代码,没有注意到isNotNull和isNotEmpty的区别。
所以平时要小心,关键是要有分寸。如果知道isNotNull和isNotEmpty的区别,一旦看到这个,自然会想到怎么用。
00-1010很多关于这方面的例子都很模糊。
在iBATIS中,isNull用于判断一个参数是否为空,而isNotNull则相反。isEmpty判断参数是Null还是空的。如果满足其中一个条件,则为真。当参数既不为Null也不为空时,为真。
具体业务需求是这样的
UPDATE id= UPDATE ybandsb parameter class= Java . util . hashmap UPDATE MZSF _ CLININVOINFO T dynamic prepend= SET isNotNull property= YBZHCODE prepend=, T . YBZHCODE=NULL/isEmpty isNotEmpty property= YBZHCODE prepend=, T . YBZHCODE=# YBZHCODE #/isNotEmpty/isNotNull
hashMap.put(YBZHCODE ,null);该字段不会在sql语句中更新
上面sql语句,如果 YBZHCODE传入的是null 即:
hashMap.put(YBZHCODE ," ");sql语句会将该字段更新为空。
如果有值,它将被更新为传入的值。
以上个人经验,希望能给大家一个参考,也希望大家能支持盛行的IT。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。