基于SpringBoot实现的分页查询(分分钟钟上手)

这里是使用的hibernate(不需要写sql)和springboot 也可使用 MyBatis(推荐使用)

下面是使用Spring Boot实现分页查询的示例:

  1. 在pom.xml文件中添加依赖项:
<dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

<!-- (可选)添加MySQL依赖 -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.26</version>
</dependency>

  1. 定义一个JPA实体类(例如User),并在该类中添加相应的字段、构造方法和Getter/Setter方法。
  2. User类中添加JPA注解,并指定数据表名、主键等信息。例如:
@Data
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table(name = "user")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(name = "name")
    private String name;

    @Column(name = "age")
    private Integer age;

}
  1. 创建一个UserRepository接口,继承自JpaRepository<User, Long>,并添加方法用于查询分页数据。例如:
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
    Page<User> findByNameContaining(String keyword, Pageable pageable);
}

其中,findByNameContaining方法用于查询包含关键字的用户列表,Pageable参数用于指定分页相关信息,例如当前页码、每页记录数等。

  1. 创建一个UserController类,定义一个REST接口,用于调用UserRepository中的方法获取用户列表。例如:
@RestController
@RequestMapping("/users")
public class UserController {
    @Autowired
    private UserRepository userRepository;

    @GetMapping("")
    public ResponseEntity<List<User>> getUsers(@RequestParam(defaultValue = "") String keyword,
                                                @RequestParam(defaultValue = "0") int page,
                                                @RequestParam(defaultValue = "10") int size) {
        // 上面是指定内页显示几条数据
        Pageable pageable = PageRequest.of(page, size);
        Page<User> userPage = userRepository.findByNameContaining(keyword, pageable);
        List<User> userList = userPage.getContent();
        return new ResponseEntity<>(userList, HttpStatus.OK);
    }
}

其中,getUsers方法用于查询用户列表,并将查询结果封装在ResponseEntity中返回给客户端。

  1. 启动Spring Boot应用程序,并访问http://localhost:8080/users,即可查询分页数据。

以上是使用Spring Boot实现分页查询的基本示例。需要注意的是,不同的ORM框架和数据库可能有所差异,具体实现方式也会有所不同。在实际开发中,需要根据具体需求进行适当调整和优化。

在上述示例中,我们使用了JPA作为ORM框架,并且可以使用MySQL作为数据存储库。以下是数据库和数据的相关信息:

  1. 创建一个名为test的数据库:
CREATE DATABASE test;
  1. 创建一个名为user的数据表:
CREATE TABLE `user` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `name` varchar(50) DEFAULT NULL COMMENT '姓名',
  `age` int(11) DEFAULT NULL COMMENT '年龄',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
  1. 插入一些测试数据:
INSERT INTO `user` (`name`, `age`) VALUES ('张三', 18);
INSERT INTO `user` (`name`, `age`) VALUES ('李四', 22);
INSERT INTO `user` (`name`, `age`) VALUES ('王五', 30);
INSERT INTO `user` (`name`, `age`) VALUES ('赵六', 25);
INSERT INTO `user` (`name`, `age`) VALUES ('孙七', 28);
INSERT INTO `user` (`name`, `age`) VALUES ('周八', 31);
INSERT INTO `user` (`name`, `age`) VALUES ('吴九', 20);
INSERT INTO `user` (`name`, `age`) VALUES ('郑十', 24);

以上是使用MySQL作为数据存储库的示例。如果您使用其他数据库或者数据存储库,请根据具体情况进行相应的调整。

以下是使用Spring Boot实现分页查询的示例所需的application.yml配置:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC
    username: root
    password: yourpassword
    driver-class-name: com.mysql.cj.jdbc.Driver

  jpa:
    database-platform: org.hibernate.dialect.MySQL8Dialect
    hibernate:
      ddl-auto: update
    properties:
      hibernate:
        dialect: org.hibernate.dialect.MySQL8Dialect
        show_sql: true
        format_sql: true
        use_sql_comments: true

  # (可选)开启web服务相关的配置
  servlet:
    context-path: /api

server:
  port: 8080

其中,spring.datasource.url用于指定MySQL数据库的连接地址;spring.datasource.usernamespring.datasource.password用于指定连接数据库时的用户名和密码。如果您使用不同的数据库,需要相应调整这些配置项。

spring.jpa.database-platformspring.jpa.properties.hibernate.dialect等配置用于指定JPA的方言和其他相关属性。

servlet.context-path用于指定Web服务的Context Path,server.port用于指定服务监听的端口号。

在实际应用中,需要根据具体需求进行适当调整和优化,例如修改日志级别、添加安全认证等等。

目录结构如下

请添加图片描述

查询结构如下

请添加图片描述

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Spring Boot 中,可以使用 Spring Data JPA 实现分页查询。下面是一个简单的例子: 1. 首先,在 pom.xml 文件中添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>runtime</scope> </dependency> ``` 2. 创建一个实体类,例如 User: ```java @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private Integer age; // getters and setters } ``` 3. 创建一个 UserRepository 接口,继承 JpaRepository 接口: ```java public interface UserRepository extends JpaRepository<User, Long> { Page<User> findAll(Pageable pageable); } ``` 4. 在 Controller 中引入 UserRepository,并使用 Pageable 对象实现分页查询: ```java @RestController public class UserController { @Autowired private UserRepository userRepository; @GetMapping("/users") public Page<User> getUsers(@RequestParam(defaultValue = "0") int page, @RequestParam(defaultValue = "10") int size) { Pageable pageable = PageRequest.of(page, size); return userRepository.findAll(pageable); } } ``` 在上面的例子中,我们通过调用 UserRepository 的 findAll 方法,传入 Pageable 对象实现分页查询。在 getUsers 方法中,我们使用 @RequestParam 注解将 page 和 size 参数传递给 PageRequest.of 方法,创建一个 Pageable 对象。 这就是使用 Spring BootSpring Data JPA 实现分页查询的基本步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二手Java程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值