每个po类都有一个类,就是xxxExample.java,这个类是给用户自定义sql使用的,
主要是对各种不同的条件来操作数据库
example类与实体类对应,用作动态查询example类与实体类对应,用作动态查询
example类与实体类对应,用作动态查询
CriterionCriterion是最基本,最底层的Where条件,用于字段级的筛选
Criteria
Criteria包含一个Cretiron的集合,每一个Criteria对象内包含的Cretiron之间是由AND连接的,是逻辑与的关系。
oredCriteria
Example内有一个成员叫oredCriteria,是Criteria的集合,就想其名字所预示的一样,这个集合中的Criteria是由OR连接的,是逻辑或关系。oredCriteria就是ORed Criteria。
Mybatis逆向工程会生成实例及实例对应的example(用于添加条件,相当于where后的部分)
xxxExample example = new xxxExample();
Criteria criteria = example.createCriteria();
方法说明:
// 1.添加升序排列条件,DESC为降序
example.setOrderByClause("字段名ASC")
// 2.去除重复,boolean类型,true为选择不重复的记录
example.setDistinct(false)
// 3.添加字段xxx为null的条件
criteria.andXxxIsNull
// 4.添加字段xxx不为null的条件
criteria.andXxxIsNotNull
// 5.添加xxx字段等于value条件
criteria.andXxxEqualTo(value)
// 6.添加xxx字段不等于value条件
criteria.andXxxNotEqualTo(value)
// 7.添加xxx字段大于value条件
criteria.andXxxGreaterThan(value)
// 8.添加xxx字段大于等于value条件
criteria.andXxxGreaterThanOrEqualTo(value)
// 9.添加xxx字段小于value条件
criteria.andXxxLessThan(value)
// 10.添加xxx字段小于等于value条件
criteria.andXxxLessThanOrEqualTo(value)
// 11.添加xxx字段值在List
criteria.andXxxIn(List)
// 12.不添加xxx字段值在List
criteria.andXxxNotIn(List)
// 13.添加xxx字段值在之间
criteria.andXxxBetween(value1,value2)
@Override
public boolean delCategory(Long id) {
TbCategoryExample example = new TbCategoryExample();
Criteria criteria = example.createCriteria();
criteria.andIdEqualTo(id);
return categoryMapper.deleteByExample(example) > 0 ? true : false;
}
@TestpublicvoidtestFindUserByName(){
//通过criteria构造查询条件
UserExample userExample =new UserExample();
userExample.setOrderByClause("username asc");//asc升序,desc降序排列
userExample.setDistinct(false);//去除重复,true是选择不重复记录,false反之
UserExample.Criteria criteria = userExample.createCriteria();//构造自定义查询条件
criteria.andUsernameEqualTo("张三");//自定义查询条件可能返回多条记录,使用List接收
List<User> users = userMapper.selectByExample(userExample); System.out.println(users); }