当前位置: 首页 > news >正文

Springboot 练习

        Springboot练习——分页查询

        Emp类

package com.wzb.pojo20240930;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;import java.time.LocalDate;
import java.time.LocalDateTime;@Data
@NoArgsConstructor
@AllArgsConstructor
public class Emp {private Integer id;private String username;private String password;private String name;private Short gender;private String image;private Short job;private LocalDate entrydate;private Integer deptId;private LocalDateTime createTime;private LocalDateTime updateTime;
}

        查询封装的PageBean类

package com.wzb.pojo20240930;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;import java.util.List;@Data
@NoArgsConstructor
@AllArgsConstructor
public class PageBean {private Long total;private List<Emp> rows;
}

         查询返回的Result类

package com.wzb.pojo20240930;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data
@NoArgsConstructor
@AllArgsConstructor
public class Result {private Integer code; // 响应码,1是响应成功,2是响应失败private String message; // 响应信息,描述响应结果的字符串private Object data; // 响应返回的数据// 响应成功,但不返回数据的方法public static Result success() {return new Result(1, "success", null);}// 响应成功,并且返回数据的方法public static Result success(Object data) {return new Result(1,"success", data);}// 响应失败的方法public static Result fail(String message) {return new Result(0, message, null);}
}

        Controller

package com.wzb.controller;import com.wzb.pojo20240930.Emp;
import com.wzb.pojo20240930.PageBean;
import com.wzb.pojo20240930.Result;
import com.wzb.service.EmpService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;import java.time.LocalDate;
import java.util.List;@RestController
public class EmpController {@Autowiredprivate EmpService empService;@GetMapping("/emps")// @RequestParam接收前端传递的想要查询的页数和每一页的记录数public Result pageSelect(@RequestParam(defaultValue = "1") Integer page,@RequestParam(defaultValue = "10") Integer pageSize,String name, Short gender,// 因为Http请求的路径全部都是字符串,所以说要用@DateTimeFormat注解并限定其格式将String解析为LocalDate@DateTimeFormat(pattern = ("yyyy-MM-dd")) LocalDate begin,@DateTimeFormat(pattern = ("yyyy-MM-dd")) LocalDate end) {// 日志记录System.out.println("进行了一次条件查询");// 通过Service层,操作数据库,并将查询的数据封装到PageBean中返回PageBean pageBean = empService.pageSelect(page, pageSize, name, gender, begin, end);return Result.success(pageBean);}}

        Service

package com.wzb.service;import com.wzb.pojo20240930.Emp;
import com.wzb.pojo20240930.PageBean;import java.time.LocalDate;
import java.util.List;public interface EmpService {PageBean pageSelect(Integer page, Integer pageSize, String name, Short gender, LocalDate begin, LocalDate end);
}

        实现类

package com.wzb.service;import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.wzb.mapper.EmpMapper;
import com.wzb.pojo20240930.Emp;
import com.wzb.pojo20240930.PageBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.time.LocalDate;
import java.util.List;@Service
public class EmpServiceImplement implements EmpService{@Autowiredprivate EmpMapper empMapper;@Overridepublic PageBean pageSelect(Integer page, Integer pageSize, String name, Short gender,LocalDate begin, LocalDate end) {// 使用分页插件PageHelper.startPage(page, pageSize);// 调用mapper中的方法查询并返回List<Emp> empList = empMapper.pageSelect(name, gender, begin, end);Page<Emp> p = (Page<Emp>) empList;return new PageBean(p.getTotal(), p.getResult());}
}

        Mapper

 

package com.wzb.mapper;import com.wzb.pojo20240930.Emp;
import org.apache.ibatis.annotations.Mapper;import java.time.LocalDate;
import java.util.List;@Mapper
public interface EmpMapper {List<Emp> pageSelect(String name, Short gender, LocalDate begin, LocalDate end);
}

        XML配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wzb.mapper.EmpMapper"><!-- 执行条件分页查询 --><!-- 条件分页查询 --><select id="pageSelect" resultType="com.wzb.pojo20240930.Emp">select * from emp<where><if test="name != null and name != ''">name like concat('%',#{name},'%')</if><if test="gender != null">and gender = #{gender}</if><if test="begin != null and end != null">and entrydate between #{begin} and #{end}</if></where>order by update_time desc</select>
</mapper>

 

 

 

 

 

相关文章:

  • synchronized关键字的作用、使用场景及锁升级过程。ReentrantLock与synchronized的区别及适用场景。
  • vue使用indexedDB缓存教程
  • BCJR算法——卷积码的最大后验译码
  • Visual Studio代码编辑快捷键
  • 【Golang】关于Go语言数学计算、随机数生成模块--math
  • 损失函数篇 | YOLOv10 更换损失函数之 MPDIoU | 《2023 一种用于高效准确的边界框回归的损失函数》
  • 【数据结构】MapSet
  • Glide基本用法及With方法源码解析
  • Python保留数据删除Excel单元格的函数和公式
  • 通过PHP获取商品详情
  • 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-09-30
  • 解锁高效开发的秘密武器
  • 无人机之编队控制篇
  • 【无人机设计与控制】Multi-UAV|多无人机多场景路径规划算法MATLAB
  • Spring Cloud全解析:服务调用之OpenFeign集成OkHttp
  • js递归,无限分级树形折叠菜单
  • Laravel5.4 Queues队列学习
  • Redis的resp协议
  • Wamp集成环境 添加PHP的新版本
  • Windows Containers 大冒险: 容器网络
  • 创建一种深思熟虑的文化
  • 猴子数据域名防封接口降低小说被封的风险
  • 基于 Babel 的 npm 包最小化设置
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 浏览器缓存机制分析
  • 免费小说阅读小程序
  • 前端工程化(Gulp、Webpack)-webpack
  • 双管齐下,VMware的容器新战略
  • 学习笔记TF060:图像语音结合,看图说话
  • 阿里云服务器购买完整流程
  • #70结构体案例1(导师,学生,成绩)
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (C)一些题4
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (精确度,召回率,真阳性,假阳性)ACC、敏感性、特异性等 ROC指标
  • ./configure,make,make install的作用(转)
  • .NET CLR Hosting 简介
  • .NET Core 中的路径问题
  • .net framework profiles /.net framework 配置
  • .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary)
  • .netcore 如何获取系统中所有session_如何把百度推广中获取的线索(基木鱼,电话,百度商桥等)同步到企业微信或者企业CRM等企业营销系统中...
  • .NET与java的MVC模式(2):struts2核心工作流程与原理
  • /etc/sudoer文件配置简析
  • /使用匿名内部类来复写Handler当中的handlerMessage()方法
  • @NotNull、@NotEmpty 和 @NotBlank 区别
  • [3]Opengl ES着色器
  • [ABC275A] Find Takahashi 题解
  • [AIGC] Java List接口详解
  • [android] 手机卫士黑名单功能(ListView优化)
  • [C]编译和预处理详解
  • [C++]高精度 bign (重载运算符版本)
  • [C++内存管理]new,delete,operator new,opreator delete
  • [ComfyUI]Flux+MiniCPM-V强强联手艺术创意,媲美GPT4V级国产多模态视觉大模型