easyui-datagrid连接数据库实现分页查询数据
一、利用MVC思想建立底层数据库:
- package com.hanqi.dao;
- import java.util.ArrayList;
- import java.util.List;
- import org.hibernate.Session;
- import org.hibernate.SessionFactory;
- import org.hibernate.Transaction;
- import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
- import org.hibernate.cfg.Configuration;
- import org.hibernate.service.ServiceRegistry;
- import com.hanqi.entity.Student;
- public class StudentDAO {
- ServiceRegistry sr=null;
- Configuration cfg=null;
- SessionFactory sf=null;
- Session se=null;
- Transaction tr=null;
- public StudentDAO()
- {
- cfg=new Configuration().configure();
- sr=new StandardServiceRegistryBuilder()
- .applySettings(cfg.getProperties()).build();
- }
- //初始化
- private void init()
- {
- sf=cfg.buildSessionFactory(sr);
- se=sf.openSession();
- tr=se.beginTransaction();
- }
- //提交和释放资源
- private void destory()
- {
- tr.commit();
- se.close();
- sf.close();
- }
- //获取分页的数据集合
- public List<Student> getPageList(int page,int rows)
- {
- List<Student> rtn=new ArrayList<Student>();
- init();
- int num=(page-)*rows;
- rtn=se.createQuery("from Student").setFirstResult(num).setMaxResults(rows).list();
- destory();
- return rtn;
- }
- //获取数据条数
- public int getTotal()
- {
- int rtn=;
- init();
- List<Object>lo=se.createQuery("select count(1) from Student").list();
- if(lo!=null&&lo.size()>)
- {
- rtn=Integer.parseInt(lo.get().toString());
- }
- destory();
- return rtn;
- }
- }
二、建立service层
- package com.hanqi.service;
- import java.util.List;
- import com.alibaba.fastjson.JSONArray;
- import com.hanqi.dao.StudentDAO;
- import com.hanqi.entity.Student;
- public class StudentService {
- //查询分页数据
- //返回JSON
- public String getPageJSON(int page,int rows)
- {
- String rtn="{'title':0,'rows':[]}";
- int total=new StudentDAO().getTotal();
- if(total>)
- {
- List<Student>ls= new StudentDAO().getPageList(page, rows);
- String ls_json=JSONArray.toJSONString(ls);
- //利用转义字符转成JSON格式的语句
- rtn="{\"total\":"+total+",\"rows\":"+ls_json+"}";
- }
- return rtn;
- }
- }
三、建立servlet:
- package com.hanqi.web;
- import java.io.IOException;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import com.hanqi.service.StudentService;
- /**
- * Servlet implementation class StudentServlet
- */
- public class StudentServlet extends HttpServlet {
- private static final long serialVersionUID = 1L;
- /**
- * @see HttpServlet#HttpServlet()
- */
- public StudentServlet() {
- super();
- // TODO Auto-generated constructor stub
- }
- /**
- * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
- */
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- request.setCharacterEncoding("UTF-8");
- response.setCharacterEncoding("UTF-8");
- response.setContentType("text/html");
- String spage=request.getParameter("page");
- String srows=request.getParameter("rows");
- if(spage!=null&& srows!=null)
- {
- int page=Integer.parseInt(spage);
- int rows=Integer.parseInt(srows);
- String json =new StudentService().getPageJSON(page, rows);
- response.getWriter().print(json);
- }
- else
- {
- response.getWriter().print( "{'title':0,'rows':[]}");
- }
- }
- /**
- * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
- */
- protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- // TODO Auto-generated method stub
- doGet(request, response);
- }
- }
4、写出显示界面
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title>Insert title here</title>
- <!-- 、JQuery的js包 -->
- <script type="text/javascript" src="jquery-easyui-1.4.4/jquery.min.js"></script>
- <!-- css资源 -->
- <link rel="stylesheet" type="text/css" href="jquery-easyui-1.4.4/themes/default/easyui.css">
- <!-- 、图标资源 -->
- <link rel="stylesheet" type="text/css" href="jquery-easyui-1.4.4/themes/icon.css">
- <!-- 、easyui的js包 -->
- <script type="text/javascript" src="jquery-easyui-1.4.4/jquery.easyui.min.js"></script>
- <!-- 、本地语言 -->
- <script type="text/javascript" src="jquery-easyui-1.4.4/locale/easyui-lang-zh_CN.js"></script>
- </head>
- <body>
- <script type="text/javascript">
- $(function(){
- //创建data_grid
- $("#st").datagrid({
- url:'StudentServlet', //数据来源
- //冻结列
- //列的定义
- columns:[[
- {field:'sno',title:'学生编号',width:},
- {field:'sname',title:'学生姓名',width:},
- {field:'ssex',title:'性别',width:,align:'right'},
- {field:'sbirthday',title:'生日',width:,align:'center',hidden:true},
- {field:'sclass',title:'班级',width:,align:'right',sortable:true}
- ]],
- fitColumns:true,//列自适应宽度,不能和冻结列同时设置为true
- striped:true,//斑马线效果
- idField:'sno',//主键列
- rownumbers:true,//显示行号
- singleSelect:false,//是否单选
- pagination:true,//显示分页栏
- pageList:[,,,],//每页行数选择列表
- pageSize:,//出事每页行数
- remoteSort:false,//是否服务器端排序,设成false,才能客户端排序
- sortName:'sclass'//设置排序列
- });
- })
- </script>
- 学生表
- <br><br>
- <table id="st"></table>
- </body>
- </html>
效果图:
easyui-datagrid连接数据库实现分页查询数据的更多相关文章
- jQuery EasyUI datagrid实现本地分页的方法
http://www.codeweblog.com/jquery-easyui-datagrid%e5%ae%9e%e7%8e%b0%e6%9c%ac%e5%9c%b0%e5%88%86%e9%a1% ...
- easyUI datagrid 前端真分页
前文再续,书接上一回.easyUI datagrid 前端假分页 http://blog.csdn.net/leftfist/article/details/43164977 真分页是easyUI d ...
- oracle 分页查询数据重复问题
最近在做项目的时候发现一个问题,oracle 在查询分页数据的时候,有几条数据重复查询了,并且有几条数据在分页的时候消失了.百度了一下发现,ORACLE 在查询数据的时候返回的行不是固定的,他只是按照 ...
- Oracle数据库排序后分页查询数据错误问题解决
一.问题描述:根据更新时间倒序排序然后分页查询数据,但是点击分页操作的时候,会出现数据重复看似没有操作的情况 二.问题错误原因分析 分页查询的SQL语句: select * FROM (select ...
- SqlServer存储过程应用二:分页查询数据并动态拼接where条件
前言 开发中查询功能是贯穿全文的,我们来盘一盘使用存储过程分页查询,并且支持动态拼接where条件. 划重点:支持动态拼接where条件 对存储过程的使用有疑问的同学去[SqlServer存储过程的创 ...
- (转)扩展jquery easyui datagrid 之动态绑定列和数据
本文转载自:http://blog.csdn.net/littlewolf766/article/details/7336550 easyui datagrid 不支持动态加载列,上次使用的方法是自己 ...
- easyUI datagrid 前端假分页
datagrid有两种分页方式,真分页和假分页. 所谓真分页,就是真的每次只获取一张分页的数据. 所谓假分页,就是将所有数据全部获取下来,然后利用其分页控件进行分页. 下面具体说说假分页: 1.dat ...
- mysq带条件的分页查询数据结果错误
记一次mysql分页条件查询的结果出错: 以一张用户表为例,首先我们看表中的所有数据,注意红色框住的部分: 我们使用不带条件的分页查询来查询,数据显示是OK的: SELECT id,login_nam ...
- easyui datagrid 批量编辑和提交数据
easyui datagrid 行编辑和提交方,废话就不多说了,直接上代码 <div style="margin: 5px;"> <table id=" ...
随机推荐
- 1Z0-053 争议题目解析330
1Z0-053 争议题目解析330 考试科目:1Z0-053 题库版本:V13.02 题库中原题为: 330.What will be the end result of this set of RM ...
- java.util.ConcurrentModificationException异常处理
ConcurrentModificationException异常处理 ConcurrentModificationException异常是Iterator遍历ArrayList或者HashMap数组 ...
- SQL Server 执行计划利用统计信息对数据行的预估原理以及SQL Server 2014中预估策略的改变
前提 本文仅讨论SQL Server查询时, 对于非复合统计信息,也即每个字段的统计信息只包含当前列的数据分布的情况下, 在用多个字段进行组合查询的时候,如何根据统计信息去预估行数的. 利用不同字段 ...
- web前端学习随笔
为什么是随笔 好好算下来,学习web前端已有半个月了,这半个月来主要学习的是HTML和CSS部分,期间有困惑,也有解决困惑时的快感,所以想把这段时间感受到的一些东西记下来,因为内容比较杂,所以干脆叫随 ...
- Android 源码下载方法(Git 方式clone)
Android源码对于Android开发者来说,迟早有一天你会用到的,所以就记录一下,分享给读者,希望对读者有用 这里需要使用到Git相关知识,不清楚的可以先阅读,了解的可以跳过 Git-Tortoi ...
- Java操作Sqlite数据库-jdbc连接
Java操作Sqlite数据库步骤: 1. 导入Sqlite jdbc 本文使用sqlite-jdbc-3.7.2.jar,下载地址 http://pan.baidu.com/s/1kVHAGdD 2 ...
- TCP滑动窗口机制的简洁模型
模型图: 我们可以大概看一下上图的模型: 首先是AB之间三次握手建立TCP连接.在报文的交互过程中,A将自己的缓冲区大小(窗口大小)3发送给B,B同理,这样双方就知道了对端的窗口大小. A开始发送数据 ...
- Hexo主题实现多级分类显示
前言 最近在搞一个博客,是托管在github和gitcafe上的,利用Hexo生成的.之后,发现一个问题,显示的分类都是一级的.而我想要的是:能显示多级分类,层次分明`的那样. 问题 基本主题自带的分 ...
- LINQ to SQL语句(15)之String
LINQ to SQL支持以下String方法.但是不同的是默认情况下System.String方法区分大小写.而SQL则不区分大小写. 1.字符串串联(String Concatenation) v ...
- jquery移除属性值
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...