一、逆向工程
MyBatis的逆向工程不仅仅可以生成和表相对应的实体类还可以根据数据库种的表自动生成Example类,我们可以用Example类
实现条件增删改查而不用自己再去写sql语句。
二.Example类的使用
Example类的成员:
protected String orderByClause;
protected Integer start;
protected Integer length;
protected boolean distinct;
protected List<Criteria> oredCriteria;
orderByClause:用于指定ORDER BY条件,这个条件没有构造方法,直接通过传递字符串值指定。
start和length:是分页时用来指定查询第几条数据到第几条数据的。
distinct: 是用来指定是否要去重查询的,true为去重,false不去重。
oredCriteriia:是用来指定查询条件的。
逆向工程生成的文件XxxExample.java中包含一个static 的内部类 Criteria ,在Criteria中有很多方法,主要是定义SQL 语 句where后的查询条件。
三、使用方法
需求:根据用户名查询查询user
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);
}