一、创建分页的工具类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 条评论) |