mybatis分页

2022-07-03  本文已影响0人  晓晓_1931
一、sql语句分页:

在mapper.xml文件添加sql语句

<select id="getEmpByLimit" parameterType="map" resultType="Emp">
    select * from emp order by empno limit #{startIndex},#{pageSize} 
</select>

在接口中添加方法:

List<Emp> getEmpByLimit(Map<String, Integer> map);

在测试类中添加:

        Map<String, Integer> map = new HashMap<String, Integer>();
        map.put("startIndex",0);//从0开始
        map.put("pageSize",3);//每页条数

        List<Emp> empList = mapper.getEmpByLimit(map);
        for (Emp emp : empList) {
            System.out.println(emp);
        }
二、RowBounds方式:

在mapper.xml文件添加sql语句

<select id="getEmpByBounds" resultType="Emp">
    select * from emp order by empno 
</select>

在接口中添加方法:

List<Emp> getEmpByBounds(RowBounds rowBounds);

在测试类中添加:

         int n = 1; //表示从第几页数据开始
         int pageSize  = 5;//连续取出几条数据 
         int start = (n - 1)* pageSize; //n 当前页 
         RowBounds rowBounds = new RowBounds(start, pageSize );
         List<Emp> list = mapper.getEmpByBounds(rowBounds); 
         for (Emp user : list) {
             System.out.println(user);
         } 
三、PageHelper

pom文件中添加依赖

        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>4.1.6</version>
        </dependency>
        <dependency>
            <groupId>com.github.jsqlparser</groupId>
            <artifactId>jsqlparser</artifactId>
            <version>0.9.5</version>
        </dependency>

mybatis配置文件中添加插件

<!-- 插件 -->
    <plugins>
        <plugin interceptor="com.github.pagehelper.PageHelper">
           
        </plugin>
    </plugins>

在mapper.xml文件添加sql语句

<select id="getEmpByPageHelper" resultType="Emp">
    select * from emp order by empno 
</select>

在接口中添加方法:

List<Emp> getEmpByPageHelper();

在测试类中添加:

        Page<Object> startPage = PageHelper.startPage(1, 5);
        List<Emp> empList = mapper.getEmpByPageHelper();
        for (Emp emp : empList) {
            System.out.println(emp);
        }
        System.out.println("总条数"+startPage.getTotal());
        System.out.println("当前页码"+startPage.getPageNum());
        System.out.println("每页的记录数"+startPage.getPageSize());
        System.out.println("总页码"+startPage.getPages());
                 
      //用PageInfo对结果进行包装
        PageInfo<Emp> page = new PageInfo<Emp>(empList);
        //测试PageInfo全部属性
        //PageInfo包含了非常全面的分页属性
        System.out.println("当前页码"+ page.getPageNum()) ; //
        System.out.println("每页的记录数"+ page.getPageSize()) ;  //
        System.out.println("起始行"+ page.getStartRow())  ;  //
        System.out.println("尾行"+ page.getEndRow() ) ;   //
        System.out.println("总条数"+ page.getTotal() ) ;//
        System.out.println("总页码"+ page.getPages() ) ; //
        System.out.println("第一页"+ page.getFirstPage()) ;    //
        System.out.println("最后一页"+ page.getLastPage() ) ;  //
        System.out.println("是第一页"+ page.isIsFirstPage() ) ; //
        System.out.println("是最后一页"+ page.isIsLastPage() ) ;  //
        System.out.println("有上一页"+ page.isHasPreviousPage() ) ; //
        System.out.println("有下一页"+ page.isHasNextPage())  ; //
        
四、springboot+mybatis分页

pom文件中添加依赖

<!--添加mybatis分页插件-->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.2.5</version>
</dependency>

在文件中加:

spring:
   datasource:
     username: root
     password: root
     url: jdbc:mysql://localhost:3306/elm?characterEncoding=utf-8
     driver-class-name: com.mysql.jdbc.Driver

pagehelper:
  helper-dialect: mysql
  reasonable: true
  support-methods-arguments: true
  params: count=countSql

在controller中

PageHelper.startPage(1, 1);
上一篇下一篇

猜你喜欢

热点阅读