news 2026/7/7 16:06:32

条件分页查询

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
条件分页查询

controller:

@DataTimeFormat是指定前端穿过来的日期形式

@GetMapping public Result page(@RequestParam(defaultValue = "1") Integer page, @RequestParam (defaultValue = "10") Integer pageSize, String name, Integer gender, //日期格式封装到LocalDate需要指定前端传递过来的日期时间格式 @DateTimeFormat(pattern = "yyyy-MM-dd")LocalDate begin, @DateTimeFormat(pattern = "yyyy-MM-dd")LocalDate end ){ log.info("分页查询:{},{},{},{},{},{}",page,pageSize,name,gender,begin,end); PageResult<Emp> pageResult = empService.page(page,pageSize,name,gender,begin,end); return Result.success(pageResult); }

Service:

@Override public PageResult<Emp> page(Integer page, Integer pageSize,String name, Integer gender, LocalDate begin, LocalDate end) { //设置分页参数(Pagehelper) PageHelper.startPage(page, pageSize); //执行查询 List<Emp> empList = empMapper.list(name,gender,begin, end); //解析查询结果,并封装 Page<Emp> p = (Page<Emp>) empList; return new PageResult<>(p.getTotal(),p.getResult()); }

EmpMapper:

public List<Emp> list(String name, Integer gender, LocalDate begin, LocalDate end);

EmpMapper.xml:#{name}必须在concat里面写,不然会在字符串内识别不出

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.itheima.mapper.EmpMapper"> <select id="list" resultType="com.itheima.pojo.Emp"> select e.*,d.name from emp e left join dept d on e.dept_id = d.id where e.name like concat('%',#{name},'%') and e.gender = #{gender} and e.entry_date between #{begin} and #{end} order by e.update_time </select> </mapper>

优化一:

package com.itheima.pojo; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDate; @Data public class EmpQueryParam { private Integer page = 1; //页码 private Integer pageSize = 10; //每页展示记录数 private String name; //姓名 private Integer gender; //性别 @DateTimeFormat(pattern = "yyyy-MM-dd") private LocalDate begin; //入职开始时间 @DateTimeFormat(pattern = "yyyy-MM-dd") private LocalDate end; //入职结束时间 }
@GetMapping public Result page(EmpQueryParam empQueryParam) { log.info("查询请求参数: {}", empQueryParam); PageResult pageResult = empService.page(empQueryParam); return Result.success(pageResult); }
public interface EmpService { /** * 分页查询 */ //PageResult page(Integer page, Integer pageSize, String name, Integer gender, LocalDate begin, LocalDate end); PageResult page(EmpQueryParam empQueryParam); }
@Service public class EmpServiceImpl implements EmpService { @Autowired private EmpMapper empMapper; /*@Override public PageResult page(Integer page, Integer pageSize, String name, Integer gender, LocalDate begin, LocalDate end) { //1. 设置PageHelper分页参数 PageHelper.startPage(page, pageSize); //2. 执行查询 List<Emp> empList = empMapper.list(name, gender, begin, end); //3. 封装分页结果 Page<Emp> p = (Page<Emp>) empList; return new PageResult(p.getTotal(), p.getResult()); }*/ public PageResult page(EmpQueryParam empQueryParam) { //1. 设置PageHelper分页参数 PageHelper.startPage(empQueryParam.getPage(), empQueryParam.getPageSize()); //2. 执行查询 List<Emp> empList = empMapper.list(empQueryParam); //3. 封装分页结果 Page<Emp> p = (Page<Emp>)empList; return new PageResult(p.getTotal(), p.getResult()); } }
@Mapper public interface EmpMapper { /** * 查询所有的员工及其对应的部门名称 */ // @Select("select e.*, d.name as deptName from emp e left join dept d on e.dept_id = d.id") // public List<Emp> list(String name, Integer gender, LocalDate begin, LocalDate end); /** * 根据查询条件查询员工 */ List<Emp> list(EmpQueryParam empQueryParam); }

EmpMapper.xml中代码无需修改。

动态SQL:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 6:06:44

Langchain-Chatchat文档解析错误日志分析方法

Langchain-Chatchat文档解析错误日志分析方法 在构建企业级智能问答系统时&#xff0c;一个常被低估但至关重要的环节是——文档解析的稳定性。我们经常遇到这样的场景&#xff1a;用户上传了一份PDF报告&#xff0c;前端显示“上传成功”&#xff0c;可提问时却发现知识库一片…

作者头像 李华
网站建设 2026/7/7 3:50:55

AI应用架构师实战:电商企业智能财务分析AI平台架构设计与落地

AI应用架构师实战&#xff1a;电商企业智能财务分析AI平台架构设计与落地 引言&#xff1a;电商财务的「痛」与「盼」 凌晨3点&#xff0c;某电商财务总监的办公室还亮着灯——双11大促刚结束&#xff0c;她盯着Excel里的10万条订单数据&#xff0c;揉着太阳穴计算「实时营收…

作者头像 李华
网站建设 2026/7/6 16:54:42

Edge AI本地推理实现语音控制加湿器响应

Edge AI本地推理实现语音控制加湿器响应在智能家居设备日益普及的今天&#xff0c;一个看似简单的场景却常常令人困扰&#xff1a;你站在卧室里说“打开加湿器”&#xff0c;结果等了两秒才听到水泵启动——这背后是语音数据上传云端、识别、返回指令的漫长链路。更让人不安的是…

作者头像 李华
网站建设 2026/7/6 19:06:55

Langchain-Chatchat结合Prometheus监控系统状态

Langchain-Chatchat 结合 Prometheus 实现 AI 服务可观测性 在企业级人工智能应用日益普及的今天&#xff0c;一个突出的矛盾逐渐显现&#xff1a;我们拥有了强大的本地化大模型能力&#xff0c;却常常“看不见”它的运行状态。尤其是在部署像 Langchain-Chatchat 这类集成了文…

作者头像 李华
网站建设 2026/7/7 10:50:04

FaceFusion镜像支持Windows系统吗?跨平台运行方案

FaceFusion镜像支持Windows系统吗&#xff1f;跨平台运行方案在AI内容创作日益普及的今天&#xff0c;越来越多用户希望在自己的Windows电脑上运行像FaceFusion这样先进的人脸交换工具。但现实是&#xff0c;大多数这类项目最初都为Linux环境设计&#xff0c;依赖复杂的Python生…

作者头像 李华
网站建设 2026/7/7 12:06:15

学术探索新利器:书匠策AI解锁本科硕士论文写作“超能力”

在学术的浩瀚海洋中&#xff0c;每一位本科生和硕士生都是勇敢的航海家&#xff0c;怀揣着对知识的渴望和对真理的追求&#xff0c;不断探索未知的领域。然而&#xff0c;面对堆积如山的文献资料、错综复杂的逻辑框架以及繁琐的格式调整&#xff0c;不少学子常常感到力不从心。…

作者头像 李华