Mybatis和MP实现分页的代码实例
时间: 2023-06-01 08:03:53 浏览: 66
Mybatis实现分页的代码实例:
1. 首先,在Mybatis配置文件中配置分页插件:
```
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<property name="helperDialect" value="mysql"/>
</plugin>
</plugins>
```
2. 在Mapper接口中定义分页查询的方法:
```
public interface UserMapper {
List<User> selectAllUsers();
List<User> selectUsersByPage(int start, int pageSize);
}
```
3. 在Mapper映射文件中实现分页查询的SQL语句:
```
<select id="selectUsersByPage" resultMap="userResultMap">
select * from user
limit #{start}, #{pageSize}
</select>
```
4. 在Service层中调用Mapper接口的分页查询方法:
```
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public List<User> selectUsersByPage(int pageNum, int pageSize) {
int start = (pageNum - 1) * pageSize;
return userMapper.selectUsersByPage(start, pageSize);
}
}
```
MP实现分页的代码实例:
1. 在pom.xml文件中添加Mybatis Plus的依赖:
```
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.0.5</version>
</dependency>
```
2. 在Mapper接口中继承BaseMapper,并添加分页查询的方法:
```
public interface UserMapper extends BaseMapper<User> {
List<User> selectUsersByPage(Page<User> page);
}
```
3. 在Service层中调用Mapper接口的分页查询方法:
```
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public IPage<User> selectUsersByPage(int pageNum, int pageSize) {
Page<User> page = new Page<>(pageNum, pageSize);
return userMapper.selectUsersByPage(page);
}
}
```
4. 在Controller层中返回分页查询的结果:
```
@RestController
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/users")
public IPage<User> selectUsersByPage(@RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "10") int pageSize) {
return userService.selectUsersByPage(pageNum, pageSize);
}
}
```