1dao层

  1. package com.hanqi.dao;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5.  
  6. import org.hibernate.Query;
  7. import org.hibernate.Session;
  8. import org.hibernate.SessionFactory;
  9. import org.hibernate.Transaction;
  10. import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
  11. import org.hibernate.cfg.Configuration;
  12. import org.hibernate.service.ServiceRegistry;
  13.  
  14. import com.han.entity.Student;
  15.  
  16. public class StudentDAO {
  17.  
  18. //定义变量
  19. Configuration cfg = null ;
  20. ServiceRegistry sr = null ;
  21. SessionFactory sf = null ;
  22. Session se = null ;
  23. Transaction ts = null ;
  24.  
  25. //构造方法
  26. public StudentDAO()
  27. {
  28. //1获取配置文件
  29. cfg = new Configuration().configure() ;
  30.  
  31. //2注册配置
  32. sr = new StandardServiceRegistryBuilder().
  33. applySettings(cfg.getProperties()).build();
  34.  
  35. }
  36.  
  37. //初始化方法
  38. private void init()
  39. {
  40. //3获取SessionFactory
  41. sf = cfg.buildSessionFactory(sr) ;
  42.  
  43. //4产生Session
  44. se =sf.openSession() ;
  45.  
  46. //5启动事务
  47. ts = se.beginTransaction() ;
  48. }
  49.  
  50. //关闭释放资源
  51. private void destroy()
  52. {
  53. ts.commit(); //提交事务
  54.  
  55. se.close() ;//关闭释放资源
  56.  
  57. sf.close();//关闭释放资源
  58. }
  59.  
  60. //获取分页数据集合
  61. public List<Student> getPageList(int page, int rows)
  62. {
  63. List<Student> list = new ArrayList<>() ;//定义list变量并实例化
  64.  
  65. init() ;//初始化方法
  66.  
  67. list = se.createQuery("from Student")
  68. .setMaxResults(rows)//每页行数
  69. .setFirstResult((page-1)*rows)//起始页码
  70. .list() ;
  71.  
  72. destroy() ;//关闭释放资源
  73.  
  74. return list ;//返回该集合
  75. }
  76.  
  77. //获取数据条数
  78. public int getTotal()
  79. {
  80. int rtn = 0 ;//定义变量并赋值
  81.  
  82. init() ;//初始化方法
  83.  
  84. Query qu = se.createQuery("select count(1) from Student ") ;//获取Query对象
  85.  
  86. List<Object> list = qu.list() ;//定义list变量并实例化
  87.  
  88. if(list != null && list.size() > 0 )//判断获取的集合非空及长度
  89. {
  90. rtn = Integer.parseInt(list.get(0).toString()) ;//给变量rtn赋值
  91. }
  92.  
  93. destroy();//关闭并释放资源
  94.  
  95. return rtn ;//返回变量值
  96. }
  97. }

2service层

  1. package com.hanqi.service;
  2.  
  3. import java.util.List;
  4.  
  5. import com.alibaba.fastjson.JSONArray;
  6. import com.han.entity.Student;
  7. import com.hanqi.dao.StudentDAO;
  8.  
  9. public class StudentService {
  10.  
  11. //查询分页数据,并返回JSON
  12. public String getPageJSON(int page, int rows)
  13. {
  14. String rtn = "{'total':0,'rows':[ ]}" ;
  15.  
  16. int total = new StudentDAO().getTotal() ;
  17.  
  18. if(total > 0)
  19. {
  20. List<Student> list = new StudentDAO().getPageList(page, rows) ;
  21.  
  22. //将List集合转为JSON集合
  23. String json_list = JSONArray.toJSONString(list) ;
  24.  
  25. //转义字符返回复合类型的JSON字符串
  26. rtn = "{\"total\":"+total+",\"rows\":"+json_list+"}" ;
  27. }
  28.  
  29. return rtn ;
  30. }
  31. }

3servlet

  1. package com.hanqi.web;
  2.  
  3. import java.io.IOException;
  4. import javax.servlet.ServletException;
  5. import javax.servlet.http.HttpServlet;
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;
  8.  
  9. import com.hanqi.service.StudentService;
  10.  
  11. /**
  12. * Servlet implementation class StudentServlet
  13. */
  14. public class StudentServlet extends HttpServlet {
  15. private static final long serialVersionUID = 1L;
  16.  
  17. /**
  18. * @see HttpServlet#HttpServlet()
  19. */
  20. public StudentServlet() {
  21. super();
  22. // TODO Auto-generated constructor stub
  23. }
  24.  
  25. /**
  26. * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
  27. */
  28. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  29.  
  30. request.setCharacterEncoding("UTF-8");
  31. response.setCharacterEncoding("UTF-8");
  32. response.setContentType("text/html");
  33.  
  34. //接收请求
  35. //1每页行数
  36. String rows = request.getParameter("rows") ;
  37.  
  38. //2页码
  39. String page = request.getParameter("page") ;
  40.  
  41. //System.out.println("rows = "+ rows );
  42. //System.out.println("page = " + page );
  43. if(page != null && rows != null)
  44. {
  45. int rowss = Integer.parseInt(rows) ;
  46.  
  47. int pagess = Integer.parseInt(page) ;
  48.  
  49. String json_list = new StudentService().getPageJSON(pagess, rowss) ;
  50. //返回数据
  51. System.out.println(json_list);
  52. response.getWriter().write(json_list) ;
  53. }
  54. else
  55. {
  56. response.getWriter().write("{total:0,rows:[]}") ;
  57. }
  58. }
  59.  
  60. /**
  61. * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
  62. */
  63. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  64. // TODO Auto-generated method stub
  65. doGet(request, response);
  66. }
  67.  
  68. }

4html

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Insert title here</title>
  6. <!-- 1 jQuery的js包 -->
  7. <script type="text/javascript" src="jquery-easyui-1.4.4/jquery.min.js"></script>
  8.  
  9. <!-- 2 css资源 -->
  10. <link rel="stylesheet" type="text/css" href="jquery-easyui-1.4.4/themes/default/easyui.css">
  11.  
  12. <!-- 3 图标资源 -->
  13. <link rel="stylesheet" type="text/css" href="jquery-easyui-1.4.4/themes/icon.css">
  14.  
  15. <!-- 4 EasyUI的js包 -->
  16. <script type="text/javascript" src="jquery-easyui-1.4.4/jquery.easyui.min.js"></script>
  17.  
  18. <!-- 5 本地语言 -->
  19. <script type="text/javascript" src="jquery-easyui-1.4.4/locale/easyui-lang-zh_CN.js"></script>
  20.  
  21. </head>
  22. <body>
  23. <script type="text/javascript">
  24. $(function(){
  25. $('#dg').datagrid({
  26. url:'StudentServlet',
  27. columns:[[
  28. {field:'sno',title:'课程号',width:100},
  29. {field:'sname',title:'姓名',width:100},
  30. {field:'ssex',title:'性别',width:100,align:'right'},
  31. {field:'sbirthday',title:'生日',width:100,align:'right'},
  32. {field:'sclass',title:'班级',width:100,align:'right'}
  33. ]],
  34. pagination:true,//分页
  35. fitColumns:true,//列自适应宽度
  36. });
  37. })
  38. </script>
  39. <table id="dg"></table>
  40. </body>
  41. </html>

运用EasyUI中datagrid读取数据库数据实现分页的更多相关文章

  1. 修改easyui中datagrid表头和数据不能分开对齐的BUG。

    easyui的datagrid中表头和列只能同时全部向左对齐,全部向右对齐或者居中对齐. 有时候有需求,数据向左或向右,表头居中对齐. 在不修改源码的情况下.下面的代码可以实现该功能. 把下面代码放在 ...

  2. 读取数据库数据,并将数据整合成3D饼图在jsp中显示

    首先我将生成饼图的方法独立写成一个PieChar.java类,详细代码如下:(数据库需要自己建,如有需要的话) import java.io.IOException; import java.sql. ...

  3. EasyUI中datagrid的基本用法

    EasyUI中datagrid是最常用的一个控件了,现在整理一下datagrid的基本语法,先展示下页面效果吧,如下图

  4. EasyUI中datagrid双击事件

    EasyUI中datagrid双击事件 在jsp文件底部增加代码: <script type="text/javascript"> //数据表双击事件 $('#tabl ...

  5. EasyUI 中 DataGrid 控件 列 如何绑定对象中的属性

    EasyUI 中 DataGrid 控件 是我们经常用到的控件之一, 但是 DataGrid 控件 在绑定显示列时却不支持对象属性绑定. 模型如下: public class Manager impl ...

  6. easyUI中datagrid展示对象下属性以及显示多个子属性(Day_37)

    easyUI中datagrid展示对象下属性以及显示多个子属性 显示对象单个属性值 添加formatter属性 <th field="decidedzone" width=& ...

  7. 利用查询条件对象,在Asp.net Web API中实现对业务数据的分页查询处理

    在Asp.net Web API中,对业务数据的分页查询处理是一个非常常见的接口,我们需要在查询条件对象中,定义好相应业务的查询参数,排序信息,请求记录数和每页大小信息等内容,根据这些查询信息,我们在 ...

  8. 利用Aspose.Cells完成easyUI中DataGrid数据的Excel导出功能

    我准备在项目中实现该功能之前,google发现大部分代码都是利用一般处理程序HttpHandler实现的服务器端数据的Excel导出,但是这样存在的问题是ashx读取的数据一般都是数据库中视图的数据, ...

  9. EasyUI中datagrid控件的使用 设置多行表头(两行或多行)

    EasyUI中的datagrid控件十分强大,能生成各种复杂的报表,现在因为项目需要,需要生成一个表头两行的表,找了一些说明文档,以下用一个实例来说明一下: 第一种方法: $('#divData'). ...

随机推荐

  1. Ubuntu Linux上安装oracle jdk

    说明:由于很多系统不支持使用OpenJDK,因此在ubuntu下会需要安装Oracle JDK.而Oracle JDK的安装貌似没有提供apt方式,因此安装Oracle JDK的方式相对麻烦一些,我经 ...

  2. IOS第一天多线程-03线程间通信

    **** #import "HMViewController.h" @interface HMViewController () @property (weak, nonatomi ...

  3. 【iCore3 双核心板_FPGA】例程七:基础逻辑门实验——逻辑门使用

    实验指导书及代码包下载: http://pan.baidu.com/s/1Rs18U iCore3 购买链接: https://item.taobao.com/item.htm?id=52422943 ...

  4. django 动态更新属性值

    django 动态更新属性值 class TestTime(models.Model): """ 功能说明:指定测试的每一关总用时 """ ...

  5. java API 知识:截取特殊标识之前的字符串

    一: double a = 23.36; String b = String.valueOf(a); String d = b.substring(, b.lastIndexOf(".&qu ...

  6. Java实现堆排序(大根堆)

    堆排序是一种树形选择排序方法,它的特点是:在排序的过程中,将array[0,...,n-1]看成是一颗完全二叉树的顺序存储结构,利用完全二叉树中双亲节点和孩子结点之间的内在关系,在当前无序区中选择关键 ...

  7. js match() 方法

    方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配.

  8. DNS分别在什么情况下使用UDP和TCP

    DNS同时占用UDP和TCP端口53是公认的,这种单个应用协议同时使用两种传输协议的情况在TCP/IP栈也算是个另类.但很少有人知道DNS分别在什么情况下使用这两种协议.     如果用wiresha ...

  9. paper 110:凸优化和非凸优化

    数学中最优化问题的一般表述是求取,使,其中是n维向量,是的可行域,是上的实值函数.凸优化问题是指是闭合的凸集且是上的凸函数的最优化问题,这两个条件任一不满足则该问题即为非凸的最优化问题. 其中,是 凸 ...

  10. SpringMVC集成AOP错误:java lang classnotfoundexception org aspectj lang joinpoint

    记录自己出现的问题,Spring AOP 使用测试类测试没问题,在SpringMVC启动服务器时出现java lang classnotfoundexception org aspectj lang ...