news 2026/2/23 16:50:58

条件分页查询

作者头像

张小明

前端开发工程师

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/2/23 16:49:41

jenkins可以用gitea作为代码库吗

可以&#xff0c;Jenkins 原生支持把 Gitea 作为源码仓库&#xff0c;与 GitHub/GitLab 用法几乎一致&#xff0c;核心步骤如下&#xff1a;1. 安装插件在 Jenkins → Manage Plugins → Available 中搜索并安装 Gitea Plugin&#xff0c;重启 Jenkins 生效 。2. 全局配置连接M…

作者头像 李华
网站建设 2026/2/23 14:06:59

Nest.js WebSocket实战指南:5步构建企业级实时通信系统

Nest.js WebSocket实战指南&#xff1a;5步构建企业级实时通信系统 【免费下载链接】nest A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications with TypeScript/JavaScript &#x1f680; 项目地址: https:/…

作者头像 李华
网站建设 2026/2/21 0:31:39

技术人必看:短剧 APP 高并发 / 版权 / 备案风险规避实战

当前短剧赛道市场规模突破500亿元&#xff0c;已超越全年电影票房&#xff0c;但超70%的短剧APP因合规缺失、版权侵权等问题面临下架风险。开发运营中的合规、技术、版权隐患成为从业者核心痛点&#xff0c;本文从全流程视角拆解关键风险点&#xff0c;给出可落地的规避策略&am…

作者头像 李华
网站建设 2026/2/20 3:24:14

Cursorrules项目终极配置指南:10分钟快速上手

Cursorrules项目终极配置指南&#xff1a;10分钟快速上手 【免费下载链接】cursorrules 项目地址: https://gitcode.com/gh_mirrors/cu/cursorrules 在当今AI驱动的开发环境中&#xff0c;Cursor Agent优化和自定义规则管理已成为提升开发效率的关键。本指南将带您快速…

作者头像 李华
网站建设 2026/2/17 8:12:03

终极指南:5分钟搞定Puppeteer-Sharp快速安装与配置

终极指南&#xff1a;5分钟搞定Puppeteer-Sharp快速安装与配置 【免费下载链接】puppeteer-sharp hardkoded/puppeteer-sharp: Puppeteer-Sharp 是 .NET 中的一个封装库&#xff0c;它提供了对 Google Chrome Puppeteer API 的访问&#xff0c;可用于爬虫抓取、网页自动化、生成…

作者头像 李华