使用Mybatis构建Example进行条件化查询

介绍

使用MyBatis逆向工程,可以根据数据库中的表自动生成mapper.java、mapper.xml、pojo等文件。

在构建完Example类时就可以使用tk.mybatis进行条件化查询。

用法

1.条件化查询的的关键是tk.mybatis中的Example的构建

2.构建完Example类后就可以通过Mapper中自带的selectByExample方法进行搜索

    public AdminUser queryAdminByUsername(String username) {
        Example adminExample = new Example(AdminUser.class);
        Example.Criteria criteria = adminExample.createCriteria();
        criteria.andEqualTo("username",username);
        AdminUser admin = adminUserMapper.selectOneByExample(adminExample);
        return admin;
    }

模糊搜索

String name = "云";
Example adminExample = new Example(AdminUser.class);
adminExample.createCriteria().andNameLike('%'+name+'%');
List<AdminUser> userList = adminUserMapper.selectByExample(adminExample);

可扩展条件搜索

Example adminExample = new Example(AdminUser.class);
Example.Criteria criteria = adminExample.createCriteria();
if(StringUtils.isNotBlank(user.getAddress())){
	criteria.andAddressEqualTo(user.getAddress());
}
if(StringUtils.isNotBlank(user.getName())){
	criteria.andNameEqualTo(user.getName());
}
//可继续扩展条件
List<AdminUser> userList = adminUserMapper.selectByExample(adminExample);

通过字段排序

String order = "age DESC";
Example adminExample = new Example(AdminUser.class);
adminExample.setOrderByClause(order);
List<AdminUser> userList = adminUserMapper.selectByExample(adminExample);