QBC 风格:Query By Criteria 一种查询方式,比较面向对象,看不到sql语句。
这里记录一下关于MyBatis中Example的and和or的使用,主要是如下两种场景:
- where (条件1 and 条件2) or (条件3 and 条件4)
- where (条件1 and 条件2) and (条件3 or 条件4)
where (条件1 and 条件2) or (条件3 and 条件4)
1 | //条件1 and 条件2 |
WHERE ( is_deleted = ? and name = ? ) or ( is_deleted = ? and code = ? )
where (条件1 and 条件2) and (条件3 or 条件4)
1 | //条件1 and 条件2 |
WHERE ( is_deleted = ? and parent_id = ? ) and ( name = ? or code = ? )
显示定义条件构造器
上述QBC查询代码中使用了链式编程方式,省去了Example.Criteria对象的创建。
多条件查询时,可以直接使用同一个条件构造器(不知道这个Example.Criteria criteria叫什么,就暂且叫他构造器),往里面直接添加条件就行.
多重条件查询时,如上面的两个括号中的条件都要分别满足时,可以分别创建条件构造器,然后分别往里添加条件
1 | Example.Criteria criteria = example.createCriteria(); |
两个括号之间(也就是两个条件构造器之间)使用example的and或or来连接
1 | example.and(criteria2); |