mybatis plus 3.0分页查询
时间: 2023-11-17 19:59:35 浏览: 107
mybatis-plus分页查询
MyBatis Plus是MyBatis的增强工具,在MyBatis的基础上进行了封装,简化了开发流程,提高了开发效率。MyBatis Plus 3.0中的分页查询可以通过Page类实现,Page类继承自MyBatis的RowBounds类,可以在查询时指定分页参数,如当前页码和每页显示的数据条数。具体实现步骤如下:
1.在Mapper接口中定义分页查询方法,方法参数中需要传入Page对象。
2.在Mapper.xml文件中编写分页查询SQL语句,使用limit关键字限制查询结果的数量。
3.在Service层中调用Mapper接口中的分页查询方法,传入Page对象和查询条件。
4.在Controller层中接收前端传来的分页参数,调用Service层中的分页查询方法,将查询结果返回给前端。
示例代码如下:
```
// Mapper接口
public interface UserMapper extends BaseMapper<User> {
List<User> selectUserPage(Page<User> page, @Param("user") User user);
}
// Mapper.xml文件
<select id="selectUserPage" resultType="User">
select * from user
<where>
<if test="user.username != null and user.username != ''">
and username like concat('%', #{user.username}, '%')
</if>
</where>
limit #{page.offset}, #{page.size}
</select>
// Service层
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public IPage<User> selectUserPage(Page<User> page, User user) {
return userMapper.selectUserPage(page, user);
}
}
// Controller层
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/list")
public ReturnResult<?> list(User user, @RequestParam(defaultValue = "1") Long current, @RequestParam(defaultValue = "10") Long size) {
Page<User> page = new Page<>(current, size);
IPage<User> userPage = userService.selectUserPage(page, user);
return ReturnResult.ok(userPage);
}
}
```
阅读全文