如何编写MybatisPlus实现分页查询和动态SQL查询
发表于:2025-11-10 作者:千家信息网编辑
千家信息网最后更新 2025年11月10日,本篇内容主要讲解"如何编写MybatisPlus实现分页查询和动态SQL查询",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何编写MybatisPlus实
千家信息网最后更新 2025年11月10日如何编写MybatisPlus实现分页查询和动态SQL查询
本篇内容主要讲解"如何编写MybatisPlus实现分页查询和动态SQL查询",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何编写MybatisPlus实现分页查询和动态SQL查询"吧!
目录
一、描述
二、实现方式
三、 总结
一、描述
实现下图中的功能,分析一下该功能,既有分页查询又有根据计划状态、开始时间、公司名称进行动态查询。

二、实现方式
Controller层
/** * @param userId 专员的id * @param planState 计划状态 * @param planStartTime 计划开始时间 * @param emtCode 公司名称-分身id * @return java.util.List* @Author zhaoxiaodong * @Description 高级查询-根据计划状态、计划的时间、公司名称查询 * @Date 9:04 2021/9/29 */ @PostMapping("/selectPlanByStateTimeCompany") public Page selectPlanByStateTimeCompany(@RequestParam(required = false,defaultValue = "1")int limit, @RequestParam(required = false,defaultValue = "1")int page, @RequestParam(required = true) Long userId,@RequestParam(required = false,defaultValue = "0") int planState,@RequestParam(required = false) String planStartTime,@RequestParam(required = false) Long emtCode) { //获取该专员下所有状态为未开始的计划 List myPlanList = crmCustomerPlanService.selectNoStartPlan(userId); if (StringUtil.isNotEmpty(planStartTime)){ //判断计划的开始时间和当前时间 DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); LocalDateTime planTime = LocalDateTime.parse(planStartTime, dtf); //存放已逾期的计划 List overDuePlan = new ArrayList<>(); for (CrmCustomerPlan customerPlan : myPlanList) { if (LocalDateTime.now().isAfter(planTime)) { //当前时间在计划时间之后,说明过了计划时间,这时候我们要将它的状态改为已逾期 customerPlan.setPlanState(PlanStateEnum.OVERDUE.getCode()); overDuePlan.add(customerPlan); } } if (overDuePlan.size() > 0) { //遍历完之后,我们就可以对数据进行更改了 crmCustomerPlanService.updateBatchById(overDuePlan); } } //接下来,就是对数据进行查询 return crmCustomerPlanService.selectPlanByStateTimeCompany(limit,page,userId, planState, planStartTime, emtCode); }
在Controller中有limit、page。limit为每页限制的数量、page为第几页
Service层
/** * @param userId * @return java.util.List* @Author zhaoxiaodong * @Description 高级查询-根据计划状态、时间、公司名称查询 * @Date 9:06 2021/9/29 */ @Override public Page selectPlanByStateTimeCompany(int limit,int page,Long userId, int planState, String planStartTime, Long emtCode) { Page pagelimit= new Page(page,limit); QueryWrapper crmCustomerPlanQueryWrapper = new QueryWrapper<>(); crmCustomerPlanQueryWrapper.eq("create_user_id", userId); if (planState!=0){ crmCustomerPlanQueryWrapper.eq("plan_state", planState); } if (StringUtil.isNotEmpty(planStartTime)){ crmCustomerPlanQueryWrapper.eq("plan_start_time", planStartTime); } if (StringUtil.isNotEmpty(String.valueOf(emtCode))){ crmCustomerPlanQueryWrapper.eq("emt_code", emtCode); } return crmCustomerPlanMapper.selectPage(pagelimit,crmCustomerPlanQueryWrapper); }
在Service层中,可以通过if和QueryWrapper实现动态SQL的查询。
分页,用到了Page对象,一定要是Mybatis的。然后调用selectPage,将对象和查询条件传入进去即可。
三、 总结
MybatisPlus是真的好用,省了我们写很多的SQL语句 以及配置信息
Mybatis的分页配置信息
/** * 新的分页插件 */ @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor(); mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); return mybatisPlusInterceptor; }到此,相信大家对"如何编写MybatisPlus实现分页查询和动态SQL查询"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
查询
时间
状态
动态
公司
名称
高级
专员
信息
内容
功能
对象
数据
方式
学习
配置
实用
更深
接下来
下图
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
用友g6-e导出数据库
wpf数据库项目
财务数据库考什么语言
喀什互联网科技专业怎么样
网络安全领导小组有补助吗
怎样做好安全和服务器
软件开发广交朋友
天津达思互联网科技有限公司
文明网络安全的手抄报
数据库详细设计空间实体
最初的数据库的应用目的
查询数据库的类型有哪些内容
网络安全专业研究方向有哪些
CVI新建数据库表格
如何查询sql数据库的表名
手机开mc本地服务器
电脑连接数据库找不到服务器
我的世界服务器修改高度
表格数据是上一表的数据库
徐州运营网络技术服务怎么样
徐刚老师网络安全
电脑里面安装两个数据库
2017互联网黑科技
数据库详细设计空间实体
网络安全教育手抄报内容四年级
亿达餐饮管理系统服务器未
html写入数据库
数据库角色 public
厚道互联网科技有限公司
色盲能报计算机网络技术么