当用mybatis-plus生成的mapper进行内置的方法进行查询时,由于外部传输过来的值可能时空值或者为null
我们就不想使用这个空的查询条件,就需要进行值得判断,其实mybatis-plus生成得语句已经带有这个功能,我们只需要编写判断得工具类即可
判断工具类
/**
* 判断字符串是否为空和null
* @param obj
* @return
*/
public static boolean strIsNull(String obj){
if (obj != null && !"".equals(obj)){
return true;
}
return false;
}
使用位置
public PageInfo<Home> getPage(Home home, Integer pageNum, Integer pageSize) {
QueryWrapper<Home> queryWrapper = new QueryWrapper<>();
//当工具类判断的字符串为空或者为null时输出为false,此条件将不会添加到查询条件中
queryWrapper.like(HouseUtil.strIsNull(home.getContact()),"contact", home.getContact());
queryWrapper.eq(HouseUtil.strIsNull(home.getCartype()),"cartype", home.getCartype());
PageHelper.startPage(pageNum, pageSize);
List<Home> homeList = homeMapper.selectList(queryWrapper);
PageInfo<Home> pageInfo = new PageInfo<>(homeList);
return pageInfo;
}
语句说明
eq( boolean condition, R column, object val )
condition是一个布尔值,当condition为false时,当前这个条件方法不会生效,即生成的sql不会拼接这个条件;所以在这个参数里判断查询参数是否为空即可。