本文不做俩个框架的教学,作者认为你已经掌握的俩框架的搭建以及基本的crud.
由于我们最近接触类俩个封装了mybatis的框架tk.mybatis与mybatisPlus,所有理所当然的将俩者对比了起来
俩个框架都帮你封装基本的增删改查,基本上sql不用写了。这一点都很好用。
当对于复杂一些的查询就有一些区别了,要是再加上分页呢?
对于这个问题可以看一下这篇文章,
这是一个使用tk.mybatis的动态条件加分页的serviceImpl
public PageInfo getListByExampleAndPage(ExceptionRecordSearchModel searchModel){
Integer status = searchModel.getStatus();
Date startDate = searchModel.getStartDate();
Date endDate = searchModel.getEndDate();
String description = searchModel.getDescription();
Integer pageNum = searchModel.getPageNum();
Integer pageSize = searchModel.getPageSize();
Weekend weekend = new Weekend(ExceptionRecord.class);
if (status!=null){
Example example = new Example(ExceptionRecord.class);
Example.Criteria c1 = example.createCriteria();
c1.andEqualTo("status", status);
weekend.and(c1);
}
if (StringUtils.isNotBlank(description)){
Example example = new Example(ExceptionRecord.class);
Example.Criteria c2 = example.createCriteria();
c2.andLike("description","%"+description+"%");
weekend.and(c2);
}
if (startDate!=null){
Example example = new Example(ExceptionRecord.class);
Example.Criteria c3 = example.createCriteria();
c3.andGreaterThanOrEqualTo("occurrenceTime", startDate);
weekend.and(c3);
}
if (endDate!=null){
Example example = new Example(ExceptionRecord.class);
Example.Criteria c4 = example.createCriteria();
c4.andLessThanOrEqualTo("occurrenceTime", endDate);
weekend.and(c4);
}
PageHelper.startPage(pageNum,pageSize);
List<ExceptionRecord> exceptionRecords = exceptionRecordMapper.selectByExample(weekend);
PageInfo<ExceptionRecord> page = new PageInfo<>(exceptionRecords);
return page;
}
mybatisPlus的动态条件加分页的serviceImpl
public IPage getListByModelAndPage(AtcWeatherRunway atcWeatherRunway ,Page page){
String areaCode = atcWeatherRunway.getAreaCode();
Date createTime = atcWeatherRunway.getCreateTime();
QueryWrapper<AtcWeatherRunway> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda()
.eq(StringUtils.isNotBlank(areaCode),AtcWeatherRunway::getAreaCode,areaCode)
.gt(createTime!=null,AtcWeatherRunway::getCreateTime,createTime)
.orderByDesc(AtcWeatherRunway::getBl1a);
IPage iPage = atcWeatherRunwayMapper.selectPage(page, queryWrapper);
return iPage;
}
很显然mybatisPlus 对于这种复杂处理封装的更多,更加方便!