SpringBoot中查询数据进行分页,请给我写个完整的例子,从创建实体类到Mapper层到Mapper.xml到Service层到Controller层,并设置第一页和每页10条数据位默认值
时间: 2024-05-09 08:20:33 浏览: 65
SpringBoot实现分页
5星 · 资源好评率100%
1. 创建实体类
假设我们要查询的实体类是User,那么我们可以创建一个User类,包含id、name、age等属性。
```
public class User {
private Long id;
private String name;
private Integer age;
//省略getter/setter方法
}
```
2. 创建Mapper接口
我们需要创建一个Mapper接口UserMapper,定义查询数据的方法。这里我们使用Mybatis的注解来实现查询。
```
@Mapper
public interface UserMapper {
@Select("SELECT * FROM user")
List<User> findAll();
@Select("SELECT * FROM user LIMIT #{startIndex}, #{pageSize}")
List<User> findByPage(@Param("startIndex") int startIndex, @Param("pageSize") int pageSize);
}
```
3. 创建Mapper.xml文件
```
<?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="findAll" resultType="com.example.demo.entity.User">
SELECT * FROM user
</select>
<select id="findByPage" resultType="com.example.demo.entity.User">
SELECT * FROM user
LIMIT #{startIndex}, #{pageSize}
</select>
</mapper>
```
4. 创建Service层
我们需要创建一个UserService,实现查询数据的方法。这里我们使用PageHelper来实现分页查询。
```
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public List<User> findAll() {
return userMapper.findAll();
}
public List<User> findByPage(int pageNum, int pageSize) {
PageHelper.startPage(pageNum, pageSize);
return userMapper.findByPage((pageNum - 1) * pageSize, pageSize);
}
}
```
5. 创建Controller层
我们需要创建一个UserControlller,定义请求接口。这里我们使用@RequestParam注解来获取请求参数。
```
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/findAll")
public List<User> findAll() {
return userService.findAll();
}
@GetMapping("/findByPage")
public List<User> findByPage(@RequestParam(defaultValue = "1") int pageNum,
@RequestParam(defaultValue = "10") int pageSize) {
return userService.findByPage(pageNum, pageSize);
}
}
```
至此,我们完成了一个基于SpringBoot的分页查询例子。其中,我们使用Mybatis作为ORM框架,PageHelper来实现分页,通过Mapper.xml文件来映射SQL语句。在Controller层中,我们通过@RequestParam注解来获取请求参数,并使用默认值来设置第一页和每页10条数据。
阅读全文