mybatis 不等于空字符串,mybatis if null
目录
iftest不是空字符串且在mybatis iftest中不为空在mybatis中,iftest语法控制器层对应的xml文件mybatis将0视为空字符串,我们在可能的参数为0的地方多加一个判断。
if test不为空字符串且不为null
在mybatis中if test
判断不为空字串和null的时候,报了sql 语法错误
Xml文件:
其中enable=1if test=关键字!=null和关键字!= 和(mac_id=#{keyword})或(user _ id=# { keyword })/如果postman工具报错如下:
原因:
在if的判断中,有一个字母的大小写错误,不符合mybatis语法规范。
在mybatis中, if test 语法
1 判断不为null
其中1=1if test=关键字!=null 和user _ id=# { keyword }/if2 判断不为空字符串
其中1=1if test=关键字!= 和user _ id=# { keyword }/if3 判断不为null 且 不为空字符串
其中1=1if test=关键字!=null和关键字!= 和user_id=#{keyword}/if
Controller层 — 对应xml 文件
我们在得到列表的时候,通常会根据关键词进行精确或模糊的查询,我们null对关键词进行非空或非空的判断。如下所示:
控制器请求参数关键字请求参数默认值Dao层Xml文件@ requestparam (value="keyword ",required=false) string关键字nulliff test= keyword!=null @ request param(value=" Keyword ",required=false,defaultvalue="") String关键字空字符串if test=keyword!= /不知道默认值可不可以if test="keyword!=null和关键字!= "参数默认值Dao层Xml文件从其他渠道获取的数据或关键字不清楚。如果test="keyword!=null和关键字!="
00-1010在开发中,sqlmap中判断参数是否为null,是否为空字符串是很常见的。
当参数为Int类型0时,myBatis自动将0定义为空字符串""
mybatis把0当做空字符串
if test= authorize amount!=null和 !=authorize amount或authorize amount==0 ,a . authorize _ amount=# { authorize amount,JDBC type=varchar }/如果这是一个容易粗心的地方,也不容易排查问题。录下来提醒自己!
以上个人经验,希望能给大家一个参考,也希望大家能支持盛行的IT。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。