JavaWeb:Criteria类添加或条件
Criteria类添加或条件
简述
我们在用逆向工程Example类进行数据库where条件查询时,可以通过如下方法实现,以User类为实例,User类中有成员变量 id name age
//创建UserExample对象 UserExample example = new UserExample(); //生成Criteria实例 //第一个条件 Criteria criteria1 = example.createCriteria(); criteria1.andIdEqualTo(100); //第二个条件 Criteria criteria2 = example.createCriteria(); criteria2.andAgeEqualTo(20); //example 的or()方法,可将两个条件以或的形式组合起来,相当于 where 条件1 ro 条件2 example.or(criteria2);
以上代码完成了两个条件 id=100 或 age=20的串联。
代码解析,Example类中有一个List< Criteria>集合,List< Criteria> oredCriteria,调用createCriteria();创建时,若oredCriteria中没有元素,则会将第一次穿件的Criteria类实例直接添加到集合中,第二次添加时就不会再添加到集合中了。
public Criteria createCriteria() { Criteria criteria = createCriteriaInternal(); if (oredCriteria.size() == 0) { oredCriteria.add(criteria); } return criteria; }
所以我们需要调用Example类的or()方法进行添加。
public void or(Criteria criteria) { oredCriteria.add(criteria); }
或者可以直接用or()方法创建Criteria,可直接添加到集合中
public Criteria or() { Criteria criteria = createCriteriaInternal(); oredCriteria.add(criteria); return criteria; }