PageHelper分页插件在mybatis单框架的使用

PageHelper分页插件在mybatis单框架的使用

1.在pom.xml中导入插件所需要的依赖


<dependency>
    <groupId>com.github.pagehelpergroupId>
    <artifactId>pagehelperartifactId>
    <version>5.3.1version>
dependency>

2 在主配置文件mybatis-config中配置插件信息

<plugin interceptor="com.github.pagehelper.PageInterceptor">
    
    <property name="helperDialect" value="mysql" />
    
    <property name="reasonable" value="true"/>
plugin>

3 使用场景

3.1 通用mapper里面的方法

3.1.1 写SongsMapper接口去继承Mapper接口

package mapper;

import com.github.abel533.mapper.Mapper;
import entity.Songs;
import org.apache.ibatis.annotations.Select;

import java.util.List;
public interface SongsMapper  extends Mapper<Songs> {
}

3.1.2 测试方法

 @Test
    public void t1(){
        SqlSessionFactory sf = SqlSessionFactoryUtil.sf();
        SqlSession sqlSession = sf.openSession();
        SongsMapper mapper = sqlSession.getMapper(SongsMapper.class);
        //分页设置后 仅对最近的一条查询语句分
        Page pages = PageHelper.startPage(1, 10);
        List<Songs> list = mapper.select(null);
        list.forEach(System.out::println);
        System.out.println("当前页面:"+pages.getPageNum());
        System.out.println("总条数:"+pages.getTotal());
        System.out.println("总页数:"+pages.getPages());
        System.out.println("每页条数:"+pages.getPageSize());
    }

3.1.3 测试效果截图

PageHelper分页插件在mybatis单框架的使用_第1张图片

3.2 自定义方法

3.1.1 写SongsMapper接口去继承Mapper接口并写自己的查询方法

package mapper;

import com.github.abel533.mapper.Mapper;
import entity.Songs;
import org.apache.ibatis.annotations.Select;

import java.util.List;

public interface SongsMapper  extends Mapper<Songs> {
    @Select("SELECT * FROM songs WHERE singer_name=#{sname}")
    List<Songs> find(String sname);
}

3.1.2 测试方法

 @Test
    public void t1(){
        SqlSessionFactory sf = SqlSessionFactoryUtil.sf();
        SqlSession sqlSession = sf.openSession();
        SongsMapper mapper = sqlSession.getMapper(SongsMapper.class);
        //分页设置后 仅对最近的一条查询语句分页
        Page pages = PageHelper.startPage(1, 10);
        List<Songs> list= mapper.find("周杰伦");
        list.forEach(System.out::println);
        System.out.println("当前页面:"+pages.getPageNum());
        System.out.println("总条数:"+pages.getTotal());
        System.out.println("总页数:"+pages.getPages());
        System.out.println("每页条数:"+pages.getPageSize());
    }

3.1.3 测试效果截图

PageHelper分页插件在mybatis单框架的使用_第2张图片

4 总结

a 配置好环境变量和依赖后,只需要传入分页的当前页码数和一页分多少条数据这两个数据就可以执行分页了

b 需要注意的是PageHelper.startPage方法必须在调用查询方法之前使用
pageHelper每次都是物理分页,查询完点下一页的时候是再去查一次的,也存在着虚拟分页,点击查询查完所有后,点击上下页的时候就根据需求去从内存中取出来即可。

你可能感兴趣的:(mybatis学习,mybatis,单框架,PageHelp分页插件,通用mapper,自定义方法)