mybatis如何使用Criteria的and和or进行联合查询

网友投稿 303 2022-09-08


mybatis如何使用Criteria的and和or进行联合查询

目录Criteria的and和or进行联合查询使用criteria 查询xx and ( xx or xx)形式的sql

Criteria的and和or进行联合查询

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

select count(*) from demo WHERE ( ID = ? ahttp://nd STATUS = ? ) or( ID = ? and STATUS = ? )

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

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

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

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().andIdhttp://NotEqualTo(userId).andTelephoneEqualTo(telephone);//(id != 'a' and telephone = 'c')

userExample.or(criteria);//(id != 'a' and email = 'b') or (id != 'a' and telephone = 'c')

}

List userList = userService.selectByExample(userExample);


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java接口自动化框架有哪些?java接口自动化框架及用例执行过程
下一篇:中国红客联盟因内讧解散(中国红客联盟事件)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~