我是靠谱客的博主 务实玫瑰,这篇文章主要介绍mybatis如何使用Criteria的and和or进行联合查询,现在分享给大家,希望可以做个参考。

Criteria的and和or进行联合查询

复制代码
1
2
3
4
5
6
7
8
9
10
DemoExample example=new DemoExample (); DemoExample.Criteria criteria=example.createCriteria(); criteria.andidEqualTo(id); criteria.andStatusEqualTo("0"); DemoExample.Criteria criteria2=example.createCriteria(); criteria2.andidEqualTo(id); criteria2.andstatusEqualTo("1"); example.or(criteria2); dao.countByExample(example);

生成如下SQL

复制代码
1
select count(*) from demo WHERE ( ID = ? and STATUS = ? ) or( ID = ? and STATUS = ? )

以上只是举例,实际不会去这样查询。

使用criteria 查询xx and ( xx or xx)形式的sql

a and (b or c) <==> (a and b) or (a and c)

复制代码
1
2
3
4
5
6
7
8
9
UserExample userExample = new UserExample(); String email = user.getEmail(); String telephone = user.getTelephone(); userExample.createCriteria().andIdNotEqualTo(userId).andEmailEqualTo(email);//(id != 'a' and email = 'b') if (StringUtils.isNotBlank(telephone)) { Criteria criteria = userExample.createCriteria().andIdNotEqualTo(userId).andTelephoneEqualTo(telephone);//(id != 'a' and telephone = 'c') userExample.or(criteria);//(id != 'a' and email = 'b') or (id != 'a' and telephone = 'c') } List<User> userList = userService.selectByExample(userExample);

以上为个人经验,希望能给大家一个参考,也希望大家多多支持靠谱客。

最后

以上就是务实玫瑰最近收集整理的关于mybatis如何使用Criteria的and和or进行联合查询的全部内容,更多相关mybatis如何使用Criteria内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(356)

评论列表共有 0 条评论

立即
投稿
返回
顶部