利用aop技术实现分页

news/2025/1/30 1:15:50/

1 连接数据库

第一步

连接数据库,需加入pom.xml

<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.3.0</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.2.9</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency>

数据库配置spring.factories

  线程池中核心参数有哪些?

  • 1.初始化连接数
  • 2.最小连接数
  • 3.最大连接数
  • 4.最大空闲等待时间

第二步

dao

Data Access Object 数据访问对象

底层可以换任何一个主键

  所以需要写student类(在moder中) 

package cn.zxy.moder;import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class Student {private Integer id;private String name;private String age;
}

 然后写select方法(在resources中建立mapper)

StudentMapper.xml

第三步

Studentcontroller 类在controller文件中写

package cn.zxy.controller;import cn.zxy.dao.StudentDao;
import cn.zxy.moder.Student;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.List;@RestController
@RequestMapping("api/student")
public class StudentController {@Autowiredprivate StudentDao studentDao;@GetMappingpublic List<Student> select(){return studentDao.select();}}

注入StudentDao 

@Autowiredprivate StudentDao studentDao;

第四步

 启动类

package cn.zxy;import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
@MapperScan
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}}

第五步

GET做测试http://localhost:8080/api/student/

 2 开始做分页

第一步

导入pom.xml

设置参数,测试 如果成功就可以传不固定值

 

 但是,这种方法需要每次都传入对应的参数,不方便

第二步

在StudentController中 select方法里面写入代码

 是否分页都支持

第三步

测试接口通用,万能接口,以不变应万变

配置日志

分页

 不分页

第四步

分页想要总条数

Page

第五步

在advice中 MyResponseAdvice类中需要加入

判断body是否在Page这个类中

如果是,将body强转为Page

第六步

利用hutool工具

3  利用Product再次验证

第一步

第二步

第三步

连接数据库 表名是202_product

第四步

 

4 提取公共分页 

第一步

 第二步

 ProductDao也是一样,加入@PageX

第三步

加入pom.xml

 

 第四步

第五步

使用的时候只需要加入@PageX即可用了

扩展 更加优化

 

5 记录接口耗时

只有在核心代码中才会使用接口耗时

第一步

 第二步

记录学生耗时

  第三步


http://www.ppmy.cn/news/1011043.html

相关文章

【日志】总结

日志 1.Slf4j&#xff08;Simple Loging Facade For Java&#xff09; 是一个为 Java 程序提供日志输出的统一接口&#xff0c;并不是一个具体的日志实现方案&#xff0c;只是一种规则而已。所以单独的 slf4j 是不能工作的&#xff0c;必须搭配其他具体的日志实现方案&#x…

合并区间 LeetCode热题100

题目 以数组 intervals 表示若干个区间的集合&#xff0c;其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间&#xff0c;并返回 一个不重叠的区间数组&#xff0c;该数组需恰好覆盖输入中的所有区间 。 思路 对区间以开始点为目标进行排序&#xff0c…

使用 Docker Compose 部署 Redis Sentinel 高可用架构

在现代应用中&#xff0c;无法容忍系统中断或数据丢失。Redis 作为一种高性能的内存数据库&#xff0c;被广泛应用于缓存、会话管理等场景。然而&#xff0c;即使我们拥有可伸缩的 Redis Cluster 集群&#xff0c;也需要考虑在主节点故障时自动切换到从节点的机制。这时候 Redi…

C++11实用技术(三)std::future、std::promise、std::packaged_task、async

C进阶系列目录 C operator关键字的使用&#xff08;重载运算符、仿函数、类型转换操作符&#xff09; C11实用技术&#xff08;一&#xff09;auto与decltype的使用 C11实用技术&#xff08;二&#xff09;std::function和bind绑定器 C11实用技术&#xff08;三&#xff09…

K8S系列文章之 开源的堡垒机 jumpserver

一、jumpserver作为一款开源的堡垒机&#xff0c;不管是企业还是个人&#xff0c;我觉得都是比较合适的&#xff0c;而且使用也比较简单。 二、这里记录一下安装和使用过程。 1、安装&#xff0c;直接docker不是就行 version: 3 services:xbd-mysql:image: mysql:8.0.19restart…

vue diff 前后缀+最长递增子序列算法

文章目录 查找相同前后缀通过前后缀位置信息新增节点通过前后缀位置信息删除节点 中间部份 diff判断节点是否需要移动删除节点删除未查找到的节点删除多余节点 移动和新增节点最长递增子序列 求解最长递增子序列位置信息 查找相同前后缀 如上图所示&#xff0c;新旧 children 拥…

【麒麟系统安装HDP,报错处理】更新篇

麒麟系统安装HDP 麒麟系统安装HDP第一个版本超链接&#xff1a;1、软件版本介绍2、文件替换修改oc_check.py伪装麒麟系统成centos8yum_manager.pyscript.py以os_check.py为例伪装成centos 3 报错解决3.1 解决KeyError: HDP-3.1&#xff08;所有机器&#xff09;3.2 安装smartse…

UEditorPlus v3.3.0 图片上传压缩重构,UI优化,升级基础组件

UEditor是由百度开发的所见即所得的开源富文本编辑器&#xff0c;基于MIT开源协议&#xff0c;该富文本编辑器帮助不少网站开发者解决富文本编辑器的难点。 UEditorPlus 是有 ModStart 团队基于 UEditor 二次开发的富文本编辑器&#xff0c;主要做了样式的定制&#xff0c;更符…