Hibernate(十一)如何写分页
来源:互联网 发布:ieee数据库 编辑:程序博客网 时间:2024/05/23 19:23
2017年11月19日,记录一下用hibernate+springMVC写了一个简单分页,但是功能还不够完善(没有获取数据的总数量,最大值写死了)!
这里记录一下思路:不管是动态生成数字按钮模式还是只有上下页按钮,中间加一个显示当前页按钮这种模式,都要从数据库获取一共有多少条数据,然后设置当前页显示数量,接着就是逻辑判断,当点击上一页或许下一页的时候,当前显示数量的第一条记录是从第几条记录开始,这里可以简单做一个数学计算!
网页代码:
列表显示:通过table放入
<table class="table table-hover"> <thead> <th>姓名</th> <th>性别</th> <th>手机</th> <th>Email</th> <th>QQ号码</th> <th>工作单位</th> <th>地址</th> <th>邮编</th> <th>操作</th> </thead> <tbody id="Body"> </tbody> </table>
分页按钮:
<!--分页按钮--> <div id="btnFenye"> <button class="btn btn-default" onclick="againPage()">上一页</button> 当前页面:<input type="button" value="1" id="currentPage"> <!-- 这里不能直接使用button按钮,因为value的值只能设置,不能显示 --> <!-- <button class="btn btn-default" id="currentPage" value="1"></button> --> <button class="btn btn-default" onclick="nextPage()">下一页</button> </div>
接下来是分页按钮事件,通过Ajax传值:
/* 按钮事件 ----------上一页 */ function againPage(){ //alert("上一页"); //这里需要转换哈类型,直接获取的是一个字符串类型,转为int类型 var currentPage = parseInt($("#currentPage").val()); //判断是否 小于1, if(currentPage <= 1){ alert("已经是第一页了") return false; } //alert("显示列表方法") $.post("showInfo", //请求方式 {"currentPage": (currentPage - 1)},//请求参数,当前页 showList, //回调函数 "json" ) //修改页面中显示 ,显示当前页 $("#currentPage").val(currentPage - 1); } /* 按钮事件 ---------下一页 */ function nextPage(){ //alert("下一页") //这里需要转换哈类型,直接获取的是一个字符串类型,转为int类型 var currentPage = parseInt($("#currentPage").val()); //判断是否大于最大页面,页数需要动态生成 if(currentPage >= 4){ alert("已经是最一页了") return false; } //alert("显示列表方法") $.post("showInfo", //请求方式 {"currentPage": (currentPage + 1)},//请求参数,当前页 showList, //回调函数 "json" ) //修改页面中显示 ,显示当前页 $("#currentPage").val(currentPage + 1); }
接下来是显示列表,也是通过Ajax传值,这里我遇到一个问题,就是从数据库获取所有数据,是一个List,但是对于网页来说,前台的底层是没有集合这一说的,所以传过来就用的数组保存,所以使用使用数组的属性:
网页初始化:
$(function(){ // alert("初始化") show() })
调用显示列表的方法:
/* 显示初始列表 */ function show(){ //alert("显示列表方法") $.post("showInfo", //请求方式 {"currentPage": 1},//请求参数,当前页,默认为1 showList, //回调函数 "json" ) }
回调函数:
//成功回调函数 function showList(msg){ //alert("回调方法") //alert(msg) //console.log(msg) var str=""; for(var i=0;i<msg.length;i++){ str+="<tr><td>"+msg[i] .nickName+"</td><td>"+msg[i] .gender+"</td><td>"+msg[i] .phone+"</td><td>"+msg[i] .email+"</td><td>"+msg[i] .qqNumber+"</td><td>"+msg[i] .workAddress+"</td><td>"+msg[i] .homeAddress+"</td><td>"+msg[i] /* 把ID放到一个td里面,点击td获取ID */ .postcode+"</td><td class='"+msg[i].userID+"'><button class='updateBtn'>修改</button></td><td class='"+msg[i].userID+"'><button class='delBtn'>删除</button></td></tr>" } $("#Body").html(str) <!--为body设值--> }
前台完成!
后台开始:
显示列表方法,DAO:
/** * 查询用户所有信息(分页) * @return User集合 */ public List<User> findUser(int currentPage);
实现层:DaoImpl
@Override public List<User> findUser(int currentPage) { Session session=HibernateUtil.getSession(); Transaction transaction=session.beginTransaction(); String hql="from User"; Query query=session.createQuery(hql); //设置每页显示条数 int max = 6; query.setFirstResult((currentPage - 1) * max);//从哪一条记录开始显示出来 query.setMaxResults(max);//一次显示的数量 ArrayList<User> list=(ArrayList<User>) query.list(); transaction.commit(); session.close(); return list; }
控制器:Contronller
//显示信息列表(更新:查询所有,并进行分页) @RequestMapping("showInfo") @ResponseBody //将java对象转换为json格式发送给客户端 //@RequestParam 从页面获取 值, required: 表示是否必须传入该值;defaultValue:表示该值的默认值 public List<User> showInfo( @RequestParam(value="currentPage", required=false, defaultValue="0") int currentPage, ModelMap model){ List<User> list=dao.findUser(currentPage); System.out.println("控制值返回值:"+list.toString()); model.addAttribute("list",list); return list; }
列表显示分页功能实现!
阅读全文
0 0
- Hibernate(十一)如何写分页
- hibernate 利用反射写分页
- Hibernate如何实现分页
- 如何写hibernate配置文件
- 如何写一个web分页
- 用户Hibernate写的一个分页
- sqlserver2008如何写hibernate配置文件
- 如何写分页(含HTML)
- oracle 中 分页如何写啊//
- 如何优雅的写分页二
- JSP中如何自己写分页
- 如何写一个简单的分页
- 逻辑分页+十一
- hibernate分页
- hibernate分页
- hibernate分页
- Hibernate分页
- hibernate分页
- Python(12)萌新也能看懂之——文件读写
- java.sql.SQLRecoverableException: IO 错误: Undefined Error
- jQuery基础
- Spring mvc的注解是如何工作的
- 2. 财务管理
- Hibernate(十一)如何写分页
- JAVA 利用JDBC连接MYSQL数据库以及增删改查的实现【学习笔记】
- 分类书写jQuery
- vmware网卡VMnet中的桥接协议卸载后无法安装
- ubuntu安装python MySQLdb
- 推荐一套写的非常好的Maven教程!
- 文章标题
- 《基础网页制作》一个超简单的div布局,制作静态网页很简单
- 【S0001-笔记】SourceInsight4.0的安装与简单用法