初学tk.mybatis与mybatisPlus对比俩者的 动态条件查询带分页的操作难以程度。
本文不做俩个框架的教学,作者认为你已经掌握的俩框架的搭建以及基本的crud.由于我们最近接触类俩个封装了mybatis的框架tk.mybatis与mybatisPlus,所有理所当然的将俩者对比了起来俩个框架都帮你封装基本的增删改查,基本上sql不用写了。这一点都很好用。当对于复杂一些的查询就有一些区别了,要是再加上分页呢?对于这个问题可以看一下这篇文章,这是一个使用tk.mybatis...
·
本文不做俩个框架的教学,作者认为你已经掌握的俩框架的搭建以及基本的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 对于这种复杂处理封装的更多,更加方便!
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)