首页 > 作文

使用Mybatis实现分页效果示例

更新时间:2023-04-04 01:26:43 阅读: 评论:0

一、创建分页的工具类pageuti,存储分页所需要的五个数据:pageindex(当前页码),pagesize(每页记录条数),count(总记录数),pagenum(总页数),list(每一页的内容)。

/** * @param <t> 泛型类 */public class pageutil<t> {    //当前页码    private int pageindex;    //每页记录数    private int pagesize;    //总记录数    private int count;    //总页数    private int pagenum;    //每一页的内容    private list<t> list;}

二、xml文件:mysql对分页的支持是通过limit子句。

如:

# 每页10条记录,取第一页,返回的是前10条记录

lect * frombooks limit (1-1)*10,10;

# 每页10条记录,取第二页,返回的是第11条记录,到第20条记录,

lect * frombooks limit (2-1)*10,10;

所以:limit的第一个参数=(当前页码-1)*每页记录数

<!--分页,查询当前页的内容-->    <lect id="getbookspage" resulttype="list" parametertype="map">        lect * from books limit #{pageindex},#{pagesize}    </lect><!--查询总记录数-->    <lect id="getcount" resulttype="int" parametertype="map">        lect count(*) from books</lect>

三、booksrviceimpl.java:将limit需要的两个参数存入map集合中,再将分页所需要的五个数据封装。

public pageutil<books> getbookspage(int pageindex, int pagesize) {        pageutil<books> pageutil=new pageutil<>();        sqlssion sqlssion= mybatisutil.getsqlssion();        try {            //booksmapper是使用动态代理模式,运行反射机制,创建的一个代理对象            booksmapper booksmapper=sqlssion.getmapper(booksmapper.class);            map map=new hashmap();            int row=booksmapper.getcount(map);            //计算总页数            int pagecount= (int) math.ceil((double) row / pagesize);            //limit的第一个参数=(当前页码-1)*每页记录数            map.put("pageindex",(pageindex - 1) * pagesize);            map.put("pagesize", pagesize);            list<books> list=booksmapper.getbookspage(map);            //将数据封装            pageutil.tpageindex(pageindex);            pageutil.tpagesize(pagesize);            pageutil.tcount(row);            pageutil.tpagenum(pagecount);            pageutil.tlist(list);        }catch (exception e){            e.printstacktrace();        }finally {            sqlssion.clo();        }        return pageutil;    }

四、rvlet:

protected void getbooks(httprvletrequest request, httprvletrespon respon) throws rvletexception, ioexception {        if(request.getparameter("pageindex")!=null) {            int pageindex=integer.parint(request.getparameter("pageindex"));            show(respon,pageindex,arch);        }el {            show(respon);        }     }
private void show(httprvletrespon respon,object ...age福州高中排名s) throws ioexception {        int pageindex = 1;//默认第一页        if(ages.length>0){            pageindex=(int)ages[0];        }        pageutil pageutil=new pageutil();        //每页10条数据        pageutil=new booksrviceimpl().getbookspage(pageindex,10);        string js= json.tojsonstring(pageutil);        printwriter pw=respon.getwriter();        pw.write(js);    }

五、前段页面

显示分页:

var page = "<li>共" + data.count + "条,共" + data.pagenum + "页,当前第" + data.pageindex + "页</li>";          雪中花  page += "<li><a href='#' onclick='mypage(1)'>首页</a></li>";             if (data.pageindex == 1) {                page += "<li><a href='#' onclick='mypage(1)'>上一页</a></li>";            } el {                page += "<li><a  href='#'  onclick='mypage(" + (data.pageindex - 1) + ")'>上一页</a></li>";            }            // for (var i = 1; i <= data.pagenum; i++) {            //     page += "<a href='#' onclick='mypage(" + i + ")'>" + i + "</a>"            // }            if (data.pageindex < data.pagenum) {                page += "<li><a href='#' onclick='mypage(" + (data.pageindex + 1) + ")'>下一页</a></li>";            } el {                page += "<li><a href='#' o心愿的近义词nclick='mypage(" + data.pagenum + ")'>下一页</a></li>";            }            page += "<li><a href='#' onclick='mypage(" + data.pagenum + ")'>末页</a></li>";

点击分页(mypage):通过ajax请求将页码传到rvlet

function mypage(index) {            console.log(index)            $.getjson("books/getbooks.do", {"pageindex": index}, function (data) {                初三英语知识点showbooks(data)            });}

六、mybatisutil.java工具类:向外提供一个方法,可以获取sqlssion对象

public class mybatisutil {    static sqlssionfactory sqlssionfactory;     // 加载主配置文件,并创建 sqlssionfactory    static {        string resource = "com/xmx/config/mybatis-config.xml";        inputstream inputstream = null;        try {            inputstream = resources.getresourceasstream(resource);       自我推荐范文 } catch (ioexception e) {            e.printstacktrace();        }        sqlssionfactory = new sqlssionfactorybuilder().build(inputstream);    }     /**     * @description: 向外提供一个方法,可以获取sqlssion对象     * @return: org.apache.ibatis.ssion.sqlssion     */    public static sqlssion getsqlssion() {//        return sqlssionfactory.openssion(true);        return sqlssionfactory.openssion();    }}

到此这篇关于使用mybatis实现分页效果示例的文章就介绍到这了,更多相关mybites实现分页内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!

本文发布于:2023-04-04 01:26:42,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/2efe2439b28ba675da7936bf31af2775.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:使用Mybatis实现分页效果示例.doc

本文 PDF 下载地址:使用Mybatis实现分页效果示例.pdf

标签:分页   每页   页码   的是
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图