Springboot通用分页查询模板!入门案例速成!你的第一个springboot程序-分页查询操作--条件查询

SQL语句:

首先明确:起始索引从0开始,是第一个参数.

第二个参数是查询返回记录数,即每页展示的数量.

该语句表示从第一条语句开始查询,一次查询五条数据

select * from dept limit 0,5

查询第二页数据:

select * from dept limit 5,5

起始索引公式 = (页码-1)*每页记录数

获取总记录数:

select count(*) from emp

三层架构的分析

查询总记录数和每页的记录

封装PageBea并返回

组装PageBean对象

实体类

@Data
@NoArgsConstructor
@AllArgsConstructor
public class PageBean {
    private Long total;//总记录数
    private List rows;//数据列表
}

当下主流的方式-分页查询插件

三层架构的核心代码--通用分页模板

@Slf4j
@RestController
public class EmpController {

    @Autowired
    EmpService empService;

    @GetMapping("/emps")
    public Result page(@RequestParam(defaultValue = "1") int page, @RequestParam(defaultValue = "10") int pageSize)
    {
        log.info("分页查询参数{},{}",page,pageSize);
        PageBean pagebean = empService.page(page,pageSize);
        return Result.success(pagebean);
    }
}


@Service
public class EmpServiceImpl implements EmpService {

    @Autowired
    EmpMapper empMapper;

    @Override
    public PageBean page(int page, int pageSize){
       
        PageHelper.startPage(page,pageSize);

        List<Emp> empList = empMapper.list();
        Page<Emp> p = (Page<Emp>)empList;

        PageBean pageBean = new PageBean(p.getTotal(),p.getResult());
        //封装实体类
        return pageBean;
    }

}


@Mapper
public interface EmpMapper {
 
    @Select("select * from emp")
    public List<Emp> list();
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先需要在pom.xml文件中添加mybatis-plus和mysql的依赖: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.1.2</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> ``` 然后在application.yml文件中添加数据库连接信息: ```yml spring: datasource: url: jdbc:mysql://localhost:3306/db_name?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=Asia/Shanghai username: root password: root ``` 接着在MyBatis的Mapper接口中定义分页查询方法: ```java public interface UserMapper extends BaseMapper<User> { /** * 分页查询用户列表 * * @param page 分页对象 * @param user 查询参数 * @return 用户列表 */ IPage<User> selectUserPage(Page<User> page, User user); } ``` 其中,`Page`是MyBatis-Plus提供的分页查询对象,`User`是查询参数。 在具体的Mapper实现类中实现该方法: ```java @Service public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService { @Override public IPage<User> selectUserPage(Page<User> page, User user) { return baseMapper.selectUserPage(page, user); } } ``` 最后在Controller中调用该方法并返回分页结果: ```java @RestController @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @GetMapping("/list") public IPage<User> list(Page<User> page, User user) { return userService.selectUserPage(page, user); } } ``` 其中,`Page`是SpringBoot提供的分页对象,`User`是查询参数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值