如何编写MybatisPlus实现分页查询和动态SQL查询
发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,本篇内容主要讲解"如何编写MybatisPlus实现分页查询和动态SQL查询",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何编写MybatisPlus实
千家信息网最后更新 2025年01月18日如何编写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安全错误
数据库的锁怎样保障安全
笔记本如何连接服务器充当显示器
成人本科软件开发能进华为吗
齐诺网络技术工作室
德州漳卫南网络安全
软件开发个人工作报告
四川小孩子学英语的软件开发定制
sql数据库入门基础语法
苹果id退出服务器验证错误
服务器 占有率
设计数据库的会遇到什么问题
tidb数据库分布式
网络电视流媒体服务器一年多少钱
华为服务器添加nvme做系统
大连博远网络技术
建材企业为什么要入bim数据库
税务总局网络安全
网络安全应急预案明确预案的
网络安全工程师具体做什么
藻数据库
mps能设置数据库吗
虎扑软件开发人员
华为服务器打开机箱盖会断电吗
全民奇迹用户数据库在哪里
网络安全教育主题班会效果
南京信息网络技术报价
神经网络技术自动答题平台
网络安全技术与控制专业好吗
浙江师范大学网络技术学院
归属用户服务器型号
上海中友通信网络技术