news 2026/3/11 3:53:21

条件分页查询

作者头像

张小明

前端开发工程师

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/3/10 19:29:38

实测GPT Image 1.5,跑分第一的它击败Gemini了吗?

&#x1f449;目录1 模型效果全面提升2 更多额外的提升3 网友测试4 写在最后GPT Image 1.5正式发布了&#xff0c;它是 OpenAI 最新一代图像生成与编辑模型&#xff0c;对比之前的 GPT-Image-1&#xff0c;实现了全面升级。它不仅用于生成图像&#xff0c;也强化了编辑、保真与…

作者头像 李华
网站建设 2026/3/6 20:09:47

docker compose安装gitea

下面给出一份「开箱即用」的 Docker Compose 安装脚本&#xff0c;整合官方与社区最佳实践&#xff0c;支持 SSH 克隆、数据持久化&#xff0c;并可一键启动。全部内容复制到同一目录即可使用。1. 创建目录并赋权 bash mkdir -p gitea/data gitea/config sudo chown -R 1000:1…

作者头像 李华
网站建设 2026/3/9 15:49:18

gitea和gitlab有什么区别

一句话概括&#xff1a; Gitea 是“小而美”的纯 Git 托管工具&#xff0c;GitLab 是“大而全”的 DevOps 平台&#xff1b;前者省资源、易部署&#xff0c;后者功能全、资源消耗大。一句话概括&#xff1a;Gitea 是“小而美”的纯 Git 托管工具&#xff0c;GitLab 是“大而全”…

作者头像 李华
网站建设 2026/3/7 1:45:48

CH579硬件休眠模式节能设计

CH579硬件休眠模式节能设计在智能传感器节点、可穿戴设备和远程监控系统中&#xff0c;电池寿命往往决定了产品的可用性与市场竞争力。一个典型的温湿度监测器如果每天消耗几毫安时电量&#xff0c;用一颗CR2032纽扣电池可能撑不过几个月&#xff1b;而若能将平均电流压至微安级…

作者头像 李华
网站建设 2026/3/8 14:21:08

AI智能体 - 资源感知优化模式

智效合一&#xff1a;深度解析 AI 智能体中的“资源感知优化”架构模式 在 AI 领域&#xff0c;我们正从“模型竞赛”转向“应用落地”。然而&#xff0c;当开发者试图将复杂的 Agent&#xff08;智能体&#xff09;推向生产环境时&#xff0c;往往会撞上一堵墙&#xff1a;成…

作者头像 李华