1. 引入依赖
在 pom.xml
文件中添加必要的依赖:
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.1</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency>
</dependencies>
2. 配置文件
在 application.yml
文件中配置数据库连接信息:
spring:datasource:url: jdbc:mysql://localhost:3306/your_database?useSSL=false&serverTimezone=UTCusername: rootpassword: your_passworddriver-class-name: com.mysql.cj.jdbc.Drivermybatis-plus:mapper-locations: classpath*:mapper/*.xml
3. 实体类
在 com.example.entity
包下创建 User.java
:
package com.example.entity;import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;@Data
@TableName("user")
public class User {@TableIdprivate Long id;private String name;private Integer age;private String email;
}
4. Mapper 接口
在 com.example.mapper
包下创建 UserMapper.java
:
package com.example.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.entity.User;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;public interface UserMapper extends BaseMapper<User> {IPage<User> selectPageVo(Page<?> page, @Param("age") Integer age);
}
5. XML 配置
在 resources/mapper
目录下创建 UserMapper.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.example.mapper.UserMapper"><select id="selectPageVo" resultType="com.example.entity.User">SELECT *FROM userWHERE age = #{age}</select>
</mapper>
6. 服务接口
在 com.example.service
包下创建 IUserService.java
:
package com.example.service;import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.entity.User;public interface IUserService {IPage<User> selectUserPage(Page<User> page, Integer age);
}
7. 服务实现类
在 com.example.service.impl
包下创建 UserServiceImpl.java
:
package com.example.service.impl;import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.entity.User;
import com.example.mapper.UserMapper;
import com.example.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;@Service
public class UserServiceImpl implements IUserService {@Autowiredprivate UserMapper userMapper;@Overridepublic IPage<User> selectUserPage(Page<User> page, Integer age) {return userMapper.selectPageVo(page, age);}
}
8. 控制器
在 com.example.controller
包下创建 UserController.java
:
package com.example.controller;import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.entity.User;
import com.example.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;@RestController
public class UserController {@Autowiredprivate IUserService userService;@GetMapping("/users")public IPage<User> getUsers(@RequestParam(name = "page", defaultValue = "1") int page,@RequestParam(name = "size", defaultValue = "10") int size,@RequestParam(name = "age", required = false) Integer age) {Page<User> userPage = new Page<>(page, size);return userService.selectUserPage(userPage, age);}
}
9. 应用程序启动类
在 com.example
包下创建 MyApplication.java
:
package com.example;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class MyApplication {public static void main(String[] args) {SpringApplication.run(MyApplication.class, args);}
}
10. 启动和测试
启动 Spring Boot 应用程序,访问 http://localhost:8080/users?page=1&size=10&age=25
以测试分页查询功能。