在平常的开发中,有时会使用mybatis的逆向工程,来快速的创建类,其中在创建实例的过程中有一个以Example结尾的类,这个类是专门用来对这个单表来查询的类,就相当于,对该单表的增删改查是脱离sql性质的,直接在service层就可以完成(当然这个sql是逆向已经生过的)
例如:
select id, username, birthday, sex, address from user WHERE ( username = ‘张三’ ) order by username asc
@Test public void testFindUserByName(){ //通过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); }
说明:
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) // 14.添加xxx字段值不在之间 criteria.andXxxNotBetween(value1,value2)