where (条件1)and (条件2 or 条件3 or 条件4)
= where (条件1 and 条件2)or (条件1 and 条件3) or (条件1 and 条件4)
结果 是这样的
WHERE ( birthdate between ? and ? and username like ? ) or( birthdate between ? and ? and email like ? ) or( birthdate between ? and ? and phone like ? )
1. 在Example中每一个criteria相当于一个括号,把里面的内容当作一个整体。
Where(userid=’1’ and name=’2’)
1
2
3
4
UserExample example =
new
UserExample();
UserExample.Criteria c1 = example.createCriteria();
C1.andUseridEqualTo(“``1``”);
C2.andNameEqualTo(“``2``”);
` `C1.andUseridEqualTo(“
1”)`.andNameEqualTo(“````2
”);也可`
2. 在criteria中没有直接的or。
(1) where(A and B) or (C and D)
1
2
3
4
5
6
7
8
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)where A and (B or C)
==>(A and B) or (A and C)
1
2
3
4
5
6
7
8
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);
手机扫一扫
移动阅读更方便
你可能感兴趣的文章