1.首先根据自己实际需求编写实体类

 import java.io.Serializable;

 public class User implements Serializable{  //最好将该实体类序列化

     private static final long serialVersionUID = 1L;

     private Integer id;
     private String name;
     private String birthday;
     private String gender;
     private String career;
     private String address;
     private String mobile;
     private String picPath;

     public User() {
     }

     public User(Integer id, String name, String birthday, String gender, String career, String address, String mobile,
             String picPath) {
         this.id = id;
         this.name = name;
         this.birthday = birthday;
         this.gender = gender;
         this.career = career;
         this.address = address;
         this.mobile = mobile;
         this.picPath = picPath;
     }

     public Integer getId() {
         return id;
     }
     public void setId(Integer id) {
         this.id = id;
     }
     public String getName() {
         return name;
     }
     public void setName(String name) {
         this.name = name;
     }
     public String getBirthday() {
         return birthday;
     }
     public void setBirthday(String birthday) {
         this.birthday = birthday;
     }
     public String getGender() {
         return gender;
     }
     public void setGender(String gender) {
         this.gender = gender;
     }
     public String getCareer() {
         return career;
     }
     public void setCareer(String career) {
         this.career = career;
     }
     public String getAddress() {
         return address;
     }
     public void setAddress(String address) {
         this.address = address;
     }
     public String getMobile() {
         return mobile;
     }
     public void setMobile(String mobile) {
         this.mobile = mobile;
     }
     public String getPicPath() {
         return picPath;
     }
     public void setPicPath(String picPath) {
         this.picPath = picPath;
     }

     @Override
     public String toString() {
         return "User [id=" + id + ", name=" + name + ", birthday=" + birthday + ", gender=" + gender + ", career="
                 + career + ", address=" + address + ", mobile=" + mobile + ", picPath=" + picPath + "
                 + "]";
     }
 }

2.编写分页所需要的通用bean,这是关键的一步。如果你用的是easyUI框架写的管理系统,currPage,PageSize,total,totalPage,rows这几个参数是必须的。

 import java.util.List;

 public class PageNationBean<T> {
     //请求参数
     private Integer currPage=1;//当前页
     private Integer PageSize=10;//页面数据条数

     //响应数据
     private Integer total;    //数据的总记录数
     private Integer totalPage;//总页数
     private List<T> rows;

     public PageNationBean() {
     }

     public PageNationBean(Integer currPage, Integer pageSize, Integer total, Integer totalPage, List<T> rows) {
         this.currPage = currPage;
         this.PageSize = pageSize;
         this.total = total;
         this.totalPage = totalPage;
         this.rows = rows;
     }

     public Integer getCurrPage() {
         return currPage;
     }
     public void setCurrPage(Integer currPage) {
         this.currPage = currPage;
     }
     public Integer getPageSize() {
         return PageSize;
     }
     public void setPageSize(Integer pageSize) {
         PageSize = pageSize;
     }
     public Integer getTotal() {
         return total;
     }
     public void setTotal(Integer total) {
         this.total = total;
     }
     public Integer getTotalPage() {
         return totalPage;
     }
     public void setTotalPage(Integer totalPage) {
         this.totalPage = totalPage;
     }
     public List<T> getRows() {
         return rows;
     }
     public void setRows(List<T> rows) {
         this.rows = rows;
     }
     @Override
     public String toString() {
         return "\n\tPageNationBean [currPage=" + currPage + ", PageSize=" + PageSize + ", total=" + total + ", totalPage="
                 + totalPage + ", rows=" + rows + "]";
     }

 }

3.数据库中建好需要测试的表,插入一定量的数据是肯定的

4.编写映射接口

public interface UserMapper {

    PageNationBean<User> getUsersByPagenation(PageNationBean<User> userBean);

}

5.编写映射所需的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.yc.us.mapper.UserMapper">

     <resultMap type="PageNationBean" id="PageNationBeanMap">
         <result column="pageSize" property="pageSize"/>
         <result column="currPage" property="currPage"/>
         <collection property="rows" column="{pageSize=pageSize,currPage=currPage}" select="getUsers"/>
     </resultMap>

     <!-- #是采用占用符    $是直接取到值 -->
     <select id="getUsersByPagenation" parameterType="PageNationBean" resultMap="PageNationBeanMap">
         select count(1) total,ceil(count(1)/${pageSize}) totalPage,${pageSize} pageSize,${currPage} currPage from profile
     </select>
     <select id="getUsers" resultType="User">
         select * from
         (select m.*,rownum rn from
         (select * from profile) m where ${currPage}*${pageSize} >=rownum)
         where rn > (${currPage}-1)*${pageSize}
     </select>

 </mapper>

6.根据自己实际需求写一个测试类,进行实际测试

mybatis如何做分页处理的更多相关文章

  1. Mybatis Generator实现分页功能

    Mybatis Generator实现分页功能 分类: IBATIS2013-07-17 17:03 882人阅读 评论(1) 收藏 举报 mybatisibatisgeneratorpage分页 众 ...

  2. Mybatis中的分页

    Mybatis中有哪些分页方式? 数组分页:查询出全部数据,然后再list中截取需要的部分.(逻辑分页) 优点:效率高     缺点:占用内存比较高 sql分页:只从数据库中查询当前页的数据.(物理分 ...

  3. 用PHP+MySQL来做分页的演示

    用php做分页弄懂逻辑关系其实不难,不过我在听课的时候估计是被老师讲的那些变量里的英文单词给听懵了,因为有几个变量的名字都很像,只是换了两三个英文字母而已,有的就少几个这样的,听到一半已经不知道老师讲 ...

  4. mybatis框架中分页的实现

    2.分页的实现? 分页的时候考虑的问题: 分页的大小,分页的索引. 比如:分页的大小为10,分页的起始索引为1(索引从1开始) 第一页:1到10.    起始行号: (页的索引-1)*分页大小+1 结 ...

  5. Ajax做分页

    Ajax做分页 用这种ajax做分页的方法比较简单,把代码直接复制就可以,然后根据实际更改一下里面的参数. .设置分页显示显示的样式,显示效果如下. 复制代码 <style type=" ...

  6. 使用PHP做分页查询(查询结果也显示为分页)

    1.先把数据库里所有的数据分页显示在页面,并在显示数据的表格上方加上查询表单.(加上条件,实现目标结果.) <!DOCTYPE html PUBLIC "-//W3C//DTD XHT ...

  7. SpringBoot+Mybatis配置Pagehelper分页插件实现自动分页

    SpringBoot+Mybatis配置Pagehelper分页插件实现自动分页 **SpringBoot+Mybatis使用Pagehelper分页插件自动分页,非常好用,不用在自己去计算和组装了. ...

  8. SpringBoot+Mybatis+PageHelper实现分页

    SpringBoot+Mybatis+PageHelper实现分页 mybatis自己没有分页功能,我们可以通过PageHelper工具来实现分页,非常简单方便 第一步:添加依赖 <depend ...

  9. 关于使用coreseek并为其做分页的介绍(转)

    coreseek 做分页时找数据总量还真不好找.以为他会给一个方法(函数)什么的去获取,结果却不是.首先需要了解:num_matches: 当前返回的结果数,<= limit设置值.max_ma ...

随机推荐

  1. jquery和zepto的扩展方法extend

    jquery和zepto的扩展方法extend 总结下jQuery(3.1.1)和zepto(1.1.6)到底是如何来开放接口,使之可以进行扩展,两者都会有类型判断,本文使用简单的类型判断,暂不考虑兼 ...

  2. 使用plsql创建表空间和用户

    使用plsql创建oracle数据库的表空间和用户,并授权的语句.1.创建表空间:说明:datafile是指定创建位置,指向oracle数据库的默认位置:autoextend 设置容量为自动增长,50 ...

  3. 编译CM14.1(sudmod71.1)过程记录

    编译CM14.1内存要求很高,至少8G以上,我的6G也可以搞定,交换空间分配大一点. 1.安装平台 建议安装Deepin 15.3桌面版系统,系统UI好看. 2.配置环境 (1)安装编译依赖库 sud ...

  4. SQLIte Transaction

    基本概念 事务(Transaction)是指一个或多个更改数据库的扩展.例如,如果您正在创建一个记录或者更新一个记录或者从表中删除一个记录,那么您正在该表上执行事务.重要的是要控制事务以确保数据的完整 ...

  5. [bigdata] kafka基本命令 -- 迁移topic partition到指定的broker

    版本 0.9.2 创建topic bin/kafka-topics.sh --create --topic topic_name --partition 6 --replication-factor ...

  6. 修改github.com域名解析

    http://ping.chinaz.com/  首先在这个网站查询 github.com 然后选择ping速度最好的IP地址 将其填充到hosts文件中.win7路径:C:\Windows\Syst ...

  7. Elasticsearch-5.0.0移植到ubuntu16.04

    旧环境: windows10 elasticsearch-5.0.0(含elasticsearch-head插件) 新环境: ubuntu16.04 由于环境换成了ubuntu,之前windows10 ...

  8. TTTAttributedLabel xib sb lineSpacing not working

    https://github.com/TTTAttributedLabel/TTTAttributedLabel/issues/733 set the same text in storyboard ...

  9. 推荐几款我一直在用的chrome插件(下)

    请先看:推荐几款我一直在用的chrome插件(上) 6. Pocket 可以很方便的保存文章.视频等供以后查看,即实现了“Read it later”功能.有了 Pocket,您可以将所有想下次读的内 ...

  10. Eclispe远程调试tomcat设置

    首先在catelina.sh中添加 JAVA_OPTS="$JAVA_OPTS -Xrunjdwp:transport=dt_socket,address=23787,server=y,su ...