mybatis plus分页的简单案例
时间: 2023-09-10 18:05:28 浏览: 104
### 回答1:
好的,下面是一个简单的 MyBatis Plus 分页的案例:
```
// 假设有一个User实体类,有id和name属性
// 创建分页参数
Page<User> page = new Page<>(1, 10);
// 查询数据
IPage<User> result = userMapper.selectPage(page, new QueryWrapper<User>()
.like("name", "张三")
.orderByDesc("id")
);
// 获取分页数据
List<User> userList = result.getRecords();
// 获取总记录数
long total = result.getTotal();
```
以上是简单的 MyBatis Plus 分页的示例代码。其中,通过 `Page` 对象来设置分页参数,`userMapper` 是 User 对应的 Mapper 接口,`selectPage` 方法用来执行分页查询。在查询时,可以使用 `QueryWrapper` 对象添加查询条件,`orderByDesc` 方法设置排序方式,最后通过 `IPage` 对象获取分页数据和总记录数。
### 回答2:
MyBatis Plus是一款简化了MyBatis开发的持久层框架,它提供了很多便捷的功能,其中包括分页查询。
首先,我们需要在项目的依赖中添加MyBatis Plus的相关依赖,然后创建一个实体类,该实体类对应数据库中的一张表。接着,创建一个Mapper接口,继承MyBatis Plus提供的BaseMapper接口,并在其中定义分页查询的方法。
例如,我们有一张名为user的表,其中包含id, name和age三个字段。首先,我们需要在pom.xml中添加MyBatis Plus的依赖。
```xml
<!-- MyBatis Plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
```
接下来,创建一个User实体类,定义对应的属性和方法。
```java
public class User {
private Long id;
private String name;
private Integer age;
// 省略getter和setter方法
}
```
然后,创建一个UserMapper接口,继承BaseMapper接口,并在其中定义分页查询的方法。
```java
public interface UserMapper extends BaseMapper<User> {
IPage<User> selectUserPage(Page<User> page, @Param("name") String name);
}
```
在UserService中,我们可以调用UserMapper中定义的selectUserPage方法来实现分页查询用户信息。
```java
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public IPage<User> getUserPage(String name, int pageNum, int pageSize) {
Page<User> page = new Page<>(pageNum, pageSize);
return userMapper.selectUserPage(page, name);
}
}
```
最后,在Controller中,我们可以调用UserService的getUserPage方法来返回分页查询的结果。
```java
@RestController
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/users")
public IPage<User> getUsers(@RequestParam String name, @RequestParam int pageNum, @RequestParam int pageSize) {
return userService.getUserPage(name, pageNum, pageSize);
}
}
```
这样,我们就完成了一个简单的使用MyBatis Plus进行分页查询的案例。
### 回答3:
MyBatis Plus是基于MyBatis的增强工具,简化了通过MyBatis操作数据库的繁琐步骤。它提供了许多便捷的功能,包括分页查询。
下面是一个简单的MyBatis Plus分页查询的案例:
1. 首先,配置MyBatis Plus的分页插件。在application.properties或application.yml中添加以下配置:
```yaml
mybatis-plus:
configuration:
# 开启驼峰命名规则,例如数据库字段为create_time,使用java实体类对应的属性为createTime
map-underscore-to-camel-case: true
# 分页插件配置
plugin:
pagination:
# 分页类型,可选值为"pagination"(使用分页插件)或"none"(不使用分页插件)
type: pagination
```
2. 创建一个实体类和对应的Mapper接口。假设有一个User实体类和UserMapper接口,其中包含了用户的各种属性和对应的数据库操作方法。
```java
public interface UserMapper extends BaseMapper<User> {
// 自定义方法,用于分页查询用户信息
IPage<User> selectUserPage(Page<User> page, @Param("condition") QueryWrapper<User> condition);
}
```
3. 在Service层调用分页查询方法。
```java
@Autowired
private UserMapper userMapper;
public IPage<User> getUserList(int pageNum, int pageSize, String keyword) {
// 构建分页条件
Page<User> page = new Page<>(pageNum, pageSize);
// 构建查询条件
QueryWrapper<User> condition = new QueryWrapper<>();
// 根据关键字模糊查询用户名
condition.like("username", keyword);
// 调用分页查询方法
return userMapper.selectUserPage(page, condition);
}
```
4. 在Controller层进行调用并返回分页结果。
```java
@Autowired
private UserService userService;
@GetMapping("/users")
public IPage<User> getUserList(@RequestParam(value = "page", defaultValue = "1") int pageNum,
@RequestParam(value = "size", defaultValue = "10") int pageSize,
@RequestParam(value = "keyword", defaultValue = "") String keyword) {
return userService.getUserList(pageNum, pageSize, keyword);
}
```
以上就是一个简单的使用MyBatis Plus进行分页查询的案例。使用MyBatis Plus的分页插件,可以方便地实现分页功能,减少了手动编写分页查询的代码。
阅读全文