关于Mybatis的Example(and ,or )应用
程序员文章站
2022-07-10 23:15:02
近期的一个项目中遇到Mybatis的Example的and or 的应用,感觉有必要记录一下(个人见解,有问题请指出。谢谢) 1.在Example中的每一个Criteria相当于一个括号,把里面的内容当成一个整体 where (Userid = "11" and pointname = "22") ......
近期的一个项目中遇到Mybatis的Example的and or 的应用,感觉有必要记录一下(个人见解,有问题请指出。谢谢)
1.在Example中的每一个Criteria相当于一个括号,把里面的内容当成一个整体
where (Userid = "11" and pointname = "22")
BasePointsExample.Criteria criteria1 = example.createCriteria(); criteria1.andUseridEqualTo("11"); criteria1.andPointnameLike("22");
2.在Criteria中没有直接的or的构造方法(至少我不知道)所以碰到一下where 后 and or的连用的话会有点麻烦
2.1 where (条件1 and 条件2) or ( 条件3 and 条件4)
BasePointsExample.Criteria criteria1 = example.createCriteria(); criteria1.andUseridEqualTo('11'); criteria1.andPointnameLike(StringUtil.concatlike('22')); BasePointsExample.Criteria criteria2 = example.createCriteria(); criteria2.andUsernameEqualTo('33'); criteria2.andPointcontentLike(StringUtil.concatlike('44')); example.or(criteria2);
2.2 where 条件1 and (条件2 or 条件3) 这是我碰到的问题,在网上看到一种拆分的方法感觉很好
A and ( B or C ) ==> ( A and B ) or ( A and C )
BasePointsExample.Criteria criteria1 = example.createCriteria(); criteria1.andUseridEqualTo('11'); criteria1.andPointnameLike(StringUtil.concatlike('22')); BasePointsExample.Criteria criteria2 = example.createCriteria(); criteria2.andUseridEqualTo('11'); criteria2.andPointcontentLike(StringUtil.concatlike('33')); example.or(criteria2);
这是我在项目中遇到的,正好能解决我的问题。感觉还有更好的方法,正在查找尝试,这种方法简单的还可以,复杂的就吃力了。
上一篇: Java集合中的HashMap类
推荐阅读
-
关于Mybatis 中使用Mysql存储过程的方法
-
一个关于最基本的商业logo设计应用参考
-
关于knockout下拉多选值的应用
-
关于AOP在JS中的实现与应用详解
-
带着新人学springboot的应用01(springboot+mybatis+缓存 上)
-
关于.NET动态代理的介绍和应用简介
-
关于MyBatis 查询数据时属性中多对一的问题(多条数据对应一条数据)
-
带着新人学springboot的应用04(springboot+mybatis+redis 完)
-
此版本不符合Google Play关于提供64位版本应用的规定
-
关于用户禁用Cookie的解决办法和Session的图片验证码应用