springboot整合myabtisplus 写一个分页查询
时间: 2023-11-21 17:09:51 浏览: 109
好的,下面是一个简单的 Spring Boot 整合 Mybatis Plus 实现分页查询的示例代码:
1. 首先,需要在 pom.xml 文件中添加 Mybatis Plus 和 Mybatis Plus 的分页插件的依赖:
```
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.0</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-extension</artifactId>
<version>3.4.0</version>
</dependency>
```
2. 在 application.yml 文件中配置数据库连接信息和 Mybatis Plus 的相关配置:
```
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/mydatabase?serverTimezone=UTC
username: root
password: root
mybatis-plus:
mapper-locations: classpath:mapper/*.xml
configuration:
map-underscore-to-camel-case: true
cache-enabled: false
pagehelper:
helperDialect: mysql
reasonable: true
supportMethodsArguments: true
params: count=countSql
```
3. 创建一个实体类,并在类上添加 @TableName 注解和 @TableId 注解,用于指定实体类对应的数据库表名和主键:
```
@Data
@TableName("user")
public class User {
@TableId(type = IdType.AUTO)
private Long id;
private String name;
private Integer age;
}
```
4. 创建一个 Mapper 接口,继承 BaseMapper 接口,并定义一个分页查询方法:
```
public interface UserMapper extends BaseMapper<User> {
IPage<User> selectUserPage(Page<User> page, @Param("name") String name);
}
```
5. 在 resources 目录下创建一个名为 mapper 的目录,并在该目录下创建一个名为 UserMapper.xml 的文件,用于存放 SQL 语句:
```
<?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.example.demo.mapper.UserMapper">
<select id="selectUserPage" resultMap="BaseResultMap">
select * from user
<where>
<if test="name != null and name != ''">
and name like concat('%', #{name}, '%')
</if>
</where>
</select>
</mapper>
```
6. 在 Controller 中注入 UserMapper,并调用分页查询方法:
```
@RestController
public class UserController {
@Autowired
private UserMapper userMapper;
@GetMapping("/users")
public IPage<User> getUsers(@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "10") Integer pageSize,
@RequestParam(required = false) String name) {
Page<User> page = new Page<>(pageNum, pageSize);
return userMapper.selectUserPage(page, name);
}
}
```
以上就是一个简单的 Spring Boot 整合 Mybatis Plus 实现分页查询的示例代码。
阅读全文