mybatis xml if判断,mapper.xml where if判断

  mybatis xml if判断,mapper.xml where if判断

  00-1010在mapper.xml 1中使用if标签测试判断。写出等于条件2的字符串的两种方法。非空条件的判断3。当mapper.xml if test写为1时判断一个数组是否包含一些坑。分页2。字符串形式的数据比较

  

目录

 

  

mapper.xml中if标签test判断的用法

将双引号和单引号的位置互换

 

  if test= testString!=null且testString==A 且表字段=# { test string }/if 加上.toString()

  if test= testString!=null,teststring== a 。tostring()和表字段=#{testString}/if

  00-1010长时间,判断非空和非空的空标准如下:

  if test=xxx!=null和xxx!= 但是这个判断只针对String。如果是其他类型,这个条件不一定成立。比如最经典的一个:当是数字0的时候,这个判断会把0过滤掉,所以我们要判断数字的话,一般会加一个0判断(这个和mybatis的源逻辑有关系。有兴趣可以看看源代码)

  if test=xxx!=null和xxx!= 或xxx==0 但是如果传入一个数组或集合呢?我们要不要再写一份判决书?你能封装一个方法吗?

  答案是可以的。

  if标签中的测试判断可以通过使用tool类来判断。毕竟,测试后面是一个布尔值,它的用法是:

  Test= @完整包名类名@方法名(传递参数)例如:

  test= @ com . XXX . util . mybatistestutil @ isnotempty(obj)下面是我写的一个简单的工具类,不是很全面。它给你提供了一些有价值的建议,你可以根据自己的需要添加。

  导入Java . util . collection;导入Java . util . map;/* * * @ description3360mybatis的if test= 标记是非空判断工具类*如何使用:if test= @ com . XXX . XXX . util . mybatistsetutil @ is not empty(obj) * @ author 3360 single dog * @ date : 2020/7/20 */public class MybatisTestUtil { public static boolean isEmpty(Object o){ if(o==null){ return true;} if(o instance of String){ return((String)o)。修剪()。length()==0;} else if(o instance of Collection){ return((Collection)o)。isEmpty();} else if(o instance of Map){ return((Map)o)。isEmpty();} else if (o.getClass()。isArray()) { return ((Object[]) o)。长度==0;} else {返回false} } public static boolean is notempty(Object o){ return!isEmpty(o);}}

  00-1010 if test= list . contains(XXX)/./if注意,如果元素类型是字符串,参考1中的写法,一般是这样写的。

  !-contains-if test= list . contains( sample element )。tostring ())/./如果!-不包含-if test=!List.contains (sample元素)。toString()) //./如果

  

1. 字符串等于条件的两种写法

 

  

2. 非空条件的判断

映射增加了两种int类型的数据,

 

  map.put(startNum ,(page . getpagenum()-1)* page . getnumperpage());map.put(pageSize ,page . getnumperpage());错误的SQL写入:

  if test=startNum!=null和startNum!= limit # {startnum},# { pagesize }/如果正确的SQL写

  if test=startNum!=null limit # {startNum},# {pagesize}/if因为startNum中存储了int数据,所以无法与空字符串进行比较,强制比较时会报错。

  在00-1010map中添加的是字符串形式的“1”。

  map.put(uploadFlag ,upload . getuploadflag());如果要在XML中进行比较,可以使用以下两种方式:

  2.1 test使用双引号

  被比较的对象使用单引号toString()方法:

  if test=uploadFlag==1 。toString()和pw.id in(从t_contract_upload中选择pw _ id)/if2.2 test使用单引号

  用双引号直接比较对象:

  Test= upload flag== 2 和pw.id in(从t _ contract _ upload中选择pw _ id)/如果以上是我的个人经验。希望它能给你一个参考,也希望你能支持盛行的它。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: