mybatis如何做分页处理
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如何做分页处理的更多相关文章
- Mybatis Generator实现分页功能
Mybatis Generator实现分页功能 分类: IBATIS2013-07-17 17:03 882人阅读 评论(1) 收藏 举报 mybatisibatisgeneratorpage分页 众 ...
- Mybatis中的分页
Mybatis中有哪些分页方式? 数组分页:查询出全部数据,然后再list中截取需要的部分.(逻辑分页) 优点:效率高 缺点:占用内存比较高 sql分页:只从数据库中查询当前页的数据.(物理分 ...
- 用PHP+MySQL来做分页的演示
用php做分页弄懂逻辑关系其实不难,不过我在听课的时候估计是被老师讲的那些变量里的英文单词给听懵了,因为有几个变量的名字都很像,只是换了两三个英文字母而已,有的就少几个这样的,听到一半已经不知道老师讲 ...
- mybatis框架中分页的实现
2.分页的实现? 分页的时候考虑的问题: 分页的大小,分页的索引. 比如:分页的大小为10,分页的起始索引为1(索引从1开始) 第一页:1到10. 起始行号: (页的索引-1)*分页大小+1 结 ...
- Ajax做分页
Ajax做分页 用这种ajax做分页的方法比较简单,把代码直接复制就可以,然后根据实际更改一下里面的参数. .设置分页显示显示的样式,显示效果如下. 复制代码 <style type=" ...
- 使用PHP做分页查询(查询结果也显示为分页)
1.先把数据库里所有的数据分页显示在页面,并在显示数据的表格上方加上查询表单.(加上条件,实现目标结果.) <!DOCTYPE html PUBLIC "-//W3C//DTD XHT ...
- SpringBoot+Mybatis配置Pagehelper分页插件实现自动分页
SpringBoot+Mybatis配置Pagehelper分页插件实现自动分页 **SpringBoot+Mybatis使用Pagehelper分页插件自动分页,非常好用,不用在自己去计算和组装了. ...
- SpringBoot+Mybatis+PageHelper实现分页
SpringBoot+Mybatis+PageHelper实现分页 mybatis自己没有分页功能,我们可以通过PageHelper工具来实现分页,非常简单方便 第一步:添加依赖 <depend ...
- 关于使用coreseek并为其做分页的介绍(转)
coreseek 做分页时找数据总量还真不好找.以为他会给一个方法(函数)什么的去获取,结果却不是.首先需要了解:num_matches: 当前返回的结果数,<= limit设置值.max_ma ...
随机推荐
- UOJ58 【WC2013】糖果公园
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...
- Python环境配置安装
2016年12月20日14:15:23 -------------- 参考菜鸟教程: Python 环境搭建 | 菜鸟教程 http://www.runoob.com/python/python-i ...
- 【原创】自己动手写控件----XSmartNote控件
一.前面的话 在上一篇博文自己动手写工具----XSmartNote [Beta 3.0]中,用到了若干个自定义控件,其中包含用于显示Note内容的简单的Label扩展控件,用于展示标签内容的labe ...
- oracle--函数--bai
--1 没有入参的函数.返回字符串 create or replace function get_time return varchar2 as v_time varchar2(20); --声明1个 ...
- [教程] [授权翻译] 使用补丁修改DSDT/SSDT [DSDT/SSDT综合教程]
[教程] [授权翻译] 使用补丁修改DSDT/SSDT [DSDT/SSDT综合教程] http://bbs.pcbeta.com/viewthread-1571455-1-1.html [教程] [ ...
- RF 基本方法
1. Select From List id=sourceConn oracle_source 从下拉框选取值. 2. Select Radio button name value 选择单选框.也可 ...
- vm.max_map_count
Virtual memoryedit Elasticsearch uses a hybrid mmapfs / niofs directory by default to store its indi ...
- Linux学习之CentOS(二十二)--单用户模式下修改Root用户的密码
在上一篇随笔里面详细讲解了Linux系统的启动过程 (Linux学习之CentOS(二十一)--Linux系统启动详解),我们知道Linux系统的启动级别一共有6种级别,通过 /etc/inittab ...
- 解决nginx使用proxy_pass反向代理时,cookie丢失的问题
1. 如果只是host.端口转换,则cookie不会丢失.例如: location /project { proxy_pass http://127.0.0.1:8080/pr ...
- [Java] JSP笔记 - Listener 监听器
Java Web 开发时,可以使用 Listener 来监听来监听一些事件,从而实现一些功能.实际上这个监听器,原理就是 Delphi 中大家常用的各种事件. 1. 那么,监听器的主要用途用哪些呢: ...