如何编写MybatisPlus实现分页查询和动态SQL查询
发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,本篇内容主要讲解"如何编写MybatisPlus实现分页查询和动态SQL查询",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何编写MybatisPlus实
千家信息网最后更新 2025年02月23日如何编写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安全错误
数据库的锁怎样保障安全
程序如何提交到服务器运行
管家婆物联宝服务器安装不了
网络安全法的全文
邯郸系统软件开发价钱
云数据库服务ocs
传奇游戏服务器为空
胶州app定制软件开发企业
网络安全数学基础陈
网络安全系统l
全国网络安全工作会议精神
安全教育网络安全ppt
中小学生网络安全常识手抄报
山东正规软件开发价格表
数据库文件转译教程
网络安全宣传词语
网络安全宣传周活动知识答题
永兴安卓软件开发薪资
服务器安全设置下载文件
软件开发需要的准备工作
西安时时网络技术有限公司
服务器 物联网
网络安全从小事做起
excel读取数据库数据
豆豆柴区服务器
下列关于数据库系统的构成
办公数据库处理软件有哪些
怎么用wps自动填充数据库
数据库的功能有什么作用
与网络技术服务公司的合同
林场网络安全自查情况