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;
    }
经验分享 程序员 微信小程序 职场和发展