springboot + mybatis + jsp 实现 分页

本文介绍了如何在SpringBoot项目中结合MyBatis和JSP实现分页功能。通过添加Maven依赖、配置分页插件、编写Mapper和Service层代码,以及封装分页请求和结果类,详细展示了分页查询的全过程。在Controller层,利用PageHelper进行分页拦截,并在JSP页面展示分页结果。
摘要由CSDN通过智能技术生成

springboot + mybatis + jsp 实现 分页

先上图,实现评论分页:
在这里插入图片描述
实在话,这猫头鹰有点呆。。。。

好了,进入正题
先看项目目录:
在这里插入图片描述
传统的Bean+controller+service+mapper

一、添加maven依赖
在pom.xml中配置以下代码

<!--主要插件依赖pagehelper-spring-boot-starter-->
<dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper-spring-boot-starter</artifactId>
        <version>1.2.13</version>
</dependency>
<!--springboot-mybatis 依赖 mybatis-spring-boot-starter-->
<dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.1</version>
</dependency>

二、添加相关配置
在 application.properties 配置文件中添加分页插件有关的配置

#配置mysql数据库
pagehelper.helper-dialect=mysql
pagehelper.reasonable=true
pagehelper.support-methods-arguments=true
pagehelper.params=count=countSql

三、编写分页代码
1、在 Mapper 层添加一个分页查找方法。这个查询方法跟查询全部数据的方法除了名称几乎一样
在这里插入图片描述

CommentMapper.java

import com.mouping.book.bean.Comment;
import org.apache.ibatis.annotations.Mapper;

import java.util.ArrayList;

@Mapper
public interface CommentMapper {
   
    ArrayList<Comment> selectByBookId(final long book_id);
}

CommentMapper.xml,根据自己的数据库写,想走捷径的可以使用org.mybatis.generator插件,下面是我自己的代码,也是用generator生成的

<select id="selectByBookId" parameterType="java.lang.Long" resultMap="BaseResultMapadmin">
    select r.name, c.* from comment as c inner join reader_info as r on c.reader_id = r.reader_id where book_id = #{
   book_id,jdbcType=BIGINT}
</select>

2、服务层通过调用DAO层代码完成分页查询,这里统一封装分页查询的请求和结果类,从而避免因为替换ORM框架而导致服务层、控制层的分页接口也需要变动的情况,替换ORM框架也不会影响服务层以上的分页接口,起到了解耦的作用
在这里插入图片描述
CommentService.java

import java.util.ArrayList;
public interface CommentService {
   
    ArrayList<Comment> selectByBookId(long book_id);
}

CommentServiceImpl.java

import com.mouping.book.service.CommentService;import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;

@Service
public class CommentServiceImpl implements CommentService {
   
    @Resource
    private CommentMapper commentMapper;

    @Override
    public ArrayList<Comment> selectByBookId(long book_id){
   
        return commentMapper.selectByBookId(book_id);
    }
}

服务实现类通过调用分页插件完成最终的分页查询,关键代码是 PageHelper.startPage(pageNum, pageSize),将前台分页查询参数传入并拦截MyBtis执行实现分页效果
3、在controller中实现PageHelper.startPage(pageNum, pageSize),将前台分页查询参数传入并拦截MyBtis执行实现分页效果

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值