mybatis处理and、or关系的方法
来源:互联网 发布:mac os dota2 编辑:程序博客网 时间:2024/06/03 12:58
1.( xx and xx) or ( xx and xx)
实例代码:
BaUserExample baUserExample = new BaUserExample();Criteria criteria1 = baUserExample.createCriteria();criteria1.andOrgIdEqualTo("1");criteria1.andDeptIdEqualTo("1");Criteria criteria2 = baUserExample.createCriteria();criteria2.andUserNameEqualTo("name");criteria2.andEmailLike("%test@%");baUserExample.or(criteria2);userMapper.countByExample(baUserExample);
执行的sql语句:
==> Preparing: select count(*) from ba_user WHERE ( org_id = ? and dept_id = ? ) or( user_name = ? and email like ? )
2.xx and ( xx or xx)
暂时没找到直接的sql语句构造方法,但是经过转换还是可以实现的
根据逻辑表达式可以知道 a and ( b or c ) = ( a and b) or ( a and c )
所以就转变成第一种方法
举个例子,加入想要实现 select count(*) from ba_user WHERE userName like ? and ( dept_id is null or dept_id <>? )
可以转化为select count(*) from ba_user WHERE (userName like ? and dept_id is null ) or ( userName like ? and dept_id <>? )
实例代码:
BaUserExample baUserExample = new BaUserExample();Criteria criteria1 = baUserExample.createCriteria();criteria1.andUserNameLike("%name%");criteria1.andDeptIdIsNull();Criteria criteria2 = baUserExample.createCriteria();criteria2.andUserNameLike("%name%");criteria2.andDeptIdNotEqualTo("1");baUserExample.or(criteria2);userMapper.countByExample(baUserExample);
执行的sql语句:
==> Preparing: select count(*) from ba_user WHERE ( user_name like ? and dept_id is null ) or( user_name like ? and dept_id <> ? )
这算是一种取巧的方法吧,对于这样的问题可以自己编写mapper.xml文件,或者在代码里面过滤,还有一种思路就是修改Criteria的代码实现and和or功能调换(还没尝试过)。
2 2
- mybatis处理and、or关系的方法
- mybatis处理and、or关系的方法
- mybatis处理and、or关系的方法
- mybatis处理and、or关系的方法
- lasticsearch的查询关系OR AND
- mybatis 使用 AND OR 查询
- shiroFilter配置文件详解关于默认的and关系改为or
- 关系运算符:or、and的优先级问题
- myBatis处理表与表之间的关系
- mybatis处理表与表之间的关系
- MyBatis处理表与表之间的关系
- mybatis处理表与表之间的关系
- mybatis处理表与表之间的关系
- Mybatis的or逻辑
- HiveQL中where后面的and 和or 处理
- MyBatis关于LIKE的处理方法
- mybatis 使用 and和or联合查询
- mybatis 使用 and和or联合查询
- MATLAB计算宇宙外太阳辐射Ra并存tif格式
- Paper阅读笔记_3
- 朱刘算法 , 以UVa11183为例
- hdu5072Coprime
- [前端]JavaScript图片切换
- mybatis处理and、or关系的方法
- TreeViewer与XML
- 关于设置android中EditView控件是否可编辑的相关问题
- iOS9 HTTP 不能正常使用的解决办法
- k数和
- 创建支持SSH服务的CentOS镜像
- pip install -U sklearn 更新sklearn到最近版
- Struts2 ModelDriven模型驱动的使用
- HDU 2059 龟兔赛跑