mybatis example使用 and和or联合查询(转)

这两天项目用到ibatis,碰到and or的联合查询,语句像这样的

select * from table where xxx = "xxx" and (xx1="xx1" or xx2="xx2")

baidu跟google半天只找到一个手动写xml语句的,内容地址如下:

http://lyfei022.blog.163.com/blog/static/82558312009313104138320/

个人还是觉得不方便,于是去查mybatis3的文档,发现mybatis映射中有or()方法,实践可用,方法如下

 1 ViewPsmsgconsultExample example=new ViewPsmsgconsultExample();  
 2 ViewPsmsgconsultExample.Criteria criteria=example.createCriteria();  
 3 criteria.andToidEqualTo(mctid);  
 4 criteria.andStatusEqualTo("0");  
 5           
 6 ViewPsmsgconsultExample.Criteria criteria2=example.createCriteria();  
 7 criteria2.andToidEqualTo(mctid);  
 8 criteria2.andLaststatusEqualTo("0");  
 9 example.or(criteria2);  
10 psmsgconsultDao.countByExample(example);  

生成的sql语句如下:

1 select count(*) from VIEW_PSMSGCONSULT WHERE ( TOID = ? and STATUS = ? ) or( TOID = ? and LASTSTATUS = ? )   

 

一辈子很短,努力的做好两件事就好;第一件事是热爱生活,好好的去爱身边的人;第二件事是努力学习,在工作中取得不一样的成绩,实现自己的价值,而不是仅仅为了赚钱;
posted @ 2016-11-24 21:40  林加欣  阅读(34108)  评论(3编辑  收藏  举报