最近一段时间都在做人事系统的项目,主要用到了EasyUI,数据库操作,然后抽点时间整理一下EasyUI的内容。

这里我们就以一个简洁的电话簿软件为基础,具体地说一下datagrid应用吧

datagrid就是一个表格,那我们怎么让数据库中的数据显示在其中呢?

第一步:各种配置这肯定不用说,你要想正常的应用一款软件就需要加载配置,这里我们不做详细说明 ;

第二步:配置加载完毕,我们就需要写方法调用数据库来获取数据了,

    1.最底层的方法也就是Dao了 ,我们需要获取所有的联系人信息,

    2.这里我们定义两个共用方法来初始化Hibernate和最后的释放资源

    

public class PhoneDAO {

     List<Deal> list = null ;
private SessionFactory sf = null ;
private Session se = null ;
private Transaction ts = null ;
Configuration cfg = null;
ServiceRegistry sr = null ;
//在测试用例方法被执行之前自动执行的方法
//一般用来初始化对象
public PhoneDAO() {
//1获取配置文件
cfg = new Configuration().configure() ; //2注册配置
sr = new StandardServiceRegistryBuilder().
applySettings(cfg.getProperties()).build(); }
public void init ()
{
try{ //3获取SessionFactory
sf = cfg.buildSessionFactory(sr) ; }catch(Exception e)
{ //1获取配置文件
cfg = new Configuration().configure() ; //2注册配置
sr = new StandardServiceRegistryBuilder().
applySettings(cfg.getProperties()).build();
//3获取SessionFactory
sf = cfg.buildSessionFactory(sr) ; } //4产生Session
se =sf.openSession() ; //5启动事务
ts = se.beginTransaction() ;
} //后置对象
//用来释放资源
public void destroy()
{
try
{
//7提交数据
ts.commit();
}catch(Exception e)
{
cfg = new Configuration().configure() ; //2注册配置
sr = new StandardServiceRegistryBuilder().
applySettings(cfg.getProperties()).build();
//3获取SessionFactory
sf = cfg.buildSessionFactory(sr) ;
//4产生Session
se =sf.openSession() ; //5启动事务
ts = se.beginTransaction() ;
ts.commit();
}
//8释放资源
se.close();
sf.close(); //关闭,释放资源
}
}

    3.之后我们写入查询的方法

//查询联系人
public List<Phone> showAll()
{
init() ;
List<Phone> list = null ; list = se.createQuery("from Phone").list() ; destroy(); return list;
}

这里我们就获得了所有联系人列表

第三步:这里我们定义了一个json封装的泛型实体类,用来包装并返回json格式

package p_phone;

import java.util.ArrayList;
import java.util.List; /**
* @author Administrator
*封装类
*通过泛型封装JSON的结果数据
*total 初始化为0
*rows为List集合的泛型
*/ /*
* 该类为封装JSON的结果数据集,
* 所以两个变量的名字要对应JSON的格式
* 并且为了简便省去拼接,我们定义row为List的集合
*/ public class PageJSON<T> { private int total = 0 ;//定义total并初始化 private List<T> rows = new ArrayList<T>() ;//定义List集合的泛型 /*
* setting 、getting 方法
*/
public int getTotal() {
return total;
} public void setTotal(int total) {
this.total = total;
} public List<T> getRows() {
return rows;
} public void setRows(List<T> rows) {
this.rows = rows;
} }

  下面的是实体类

package p_phone;
// Generated 2016-12-14 14:17:07 by Hibernate Tools 3.4.0.CR1 import java.util.Date; /**
* Phone generated by hbm2java
*/
public class Phone implements java.io.Serializable { private String PNumber;
private String PName;
private Date PBirthday;
private String PRemark; public Phone() {
} public Phone(String PNumber, String PName, Date PBirthday) {
this.PNumber = PNumber;
this.PName = PName;
this.PBirthday = PBirthday;
} public Phone(String PNumber, String PName, Date PBirthday, String PRemark) {
this.PNumber = PNumber;
this.PName = PName;
this.PBirthday = PBirthday;
this.PRemark = PRemark;
} public String getPNumber() {
return this.PNumber;
} public void setPNumber(String PNumber) {
this.PNumber = PNumber;
} public String getPName() {
return this.PName;
} public void setPName(String PName) {
this.PName = PName;
} public Date getPBirthday() {
return this.PBirthday;
} public void setPBirthday(Date PBirthday) {
this.PBirthday = PBirthday;
} public String getPRemark() {
return this.PRemark;
} public void setPRemark(String PRemark) {
this.PRemark = PRemark;
} }

之后在service层中我们写一个方法返回json类型的所有联系人列表

public String getPageJSON()
{
String rtn = "{\"total\":0,\"rows\":[ ]}";//定义变量并初始化JSON格式的结果集 PageJSON<Phone> pjson = new PageJSON<Phone>() ;//封装Rate类 List<Phone> list = new PhoneDAO().showAll() ;//定义List集合并赋值 String json_list = JSONArray.toJSONString(list) ; //将List集合转为JSON集合
System.out.println(json_list);
/*
* 通过set方法给实例化的对象赋值
*/
pjson.setRows(list);
pjson.setTotal(2); rtn = JSONArray.toJSONString(pjson) ; //将对象JSON类型的数组 return rtn ; //返回JSON类型的结果集
}

第四步:到这里已经接近尾声了,我们再写一个Servlet,将数据传递到页面,重写doGet方法

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //转码
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html"); String json_list = new PhoneService().getPageJSON() ; response.getWriter().write(json_list) ; }

第五步:也就是最后一步了,我们怎么让它显示到页面上呢?上面我们在Servlet中已经将获取到的json类型的所有联系人写到了网页上,之后我们在页面获取就好了

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>联系人</title>
<!-- 1 jQuery的js包 -->
<script type="text/javascript" src="jquery-easyui-1.4.4/jquery.min.js"></script> <!-- 2 css资源 -->
<link rel="stylesheet" type="text/css" href="jquery-easyui-1.4.4/themes/default/easyui.css"> <!-- 3 图标资源 -->
<link rel="stylesheet" type="text/css" href="jquery-easyui-1.4.4/themes/icon.css"> <!-- 4 EasyUI的js包 -->
<script type="text/javascript" src="jquery-easyui-1.4.4/jquery.easyui.min.js"></script> <!-- 5 本地语言 -->
<script type="text/javascript" src="jquery-easyui-1.4.4/locale/easyui-lang-zh_CN.js"></script> </head>
<body>
<script type="text/javascript">
$(function(){ $("#dg").datagrid({
url:'SelectPhone' ,
idField:'pNumber',
columns:[[
{field:'pName',title:'姓名',width:100},
{field:'pNumber',title:'电话',width:100},
{field:'pBirthday',title:'生日',width:100,align:'right'},
{field:'pRemark',title:'备注',width:100,align:'right'}
]]
}) ; })
</script>
<table id="dg"></table>
</body>
</html>

到这里就全部完成了,运行一下,看看效果

是不是将数据库的内容显示到网页上了,虽然样式不太好看,但是别着急我们一步一步慢慢来,

上面也说到了,样式不好看,那我们能不能改呢,当然能,datagrid为我们提供了方法,稍加修改,页面变成了下面的样子

修改下之前的代码:

columns:[[
{field:'pName',title:'姓名',width:100,align:'center'},
{field:'pNumber',title:'电话',width:100,align:'center'},
{field:'pBirthday',title:'生日',width:100,align:'right',align:'center'},
{field:'pRemark',title:'备注',width:100,align:'right',align:'center'}
]],
pagination:true,//分页
fitColumns:true,//列自适应宽度
rownumbers:true,//显示行号
striped:true,//斑马线
singleSelect:false,//是否单选

现在在页面上我们看到了分页,这是因为我们开启了分页功能,

想了解分页功能请点击链接 :jQuery EasyUI教程之datagrid应用(二)

最新文章

  1. [数据分析]excel带名称的四象限散点图制作
  2. Rtp 协议实现网络广播台网络收音机
  3. 为什么 NSLog 不支持 Swift 对象(转)
  4. c++类的 static 和const那些事
  5. TreeView htc 改写
  6. 正整数N是否是素数
  7. HDU 3001 Travelling 3进制状压dp
  8. Python3 函数式编程
  9. 在Silverlight中打开网页的几种方法
  10. &lt;runtime&gt; 的 &lt;assemblyIdentity&gt; 元素和&lt;bindingRedirect&gt; 元素
  11. 经典.net面试题目(3)
  12. Kubernetes服务之StatefulSets简介
  13. 关于mui header在手机上运行丢失问题
  14. POJ1509 Glass Beads 【后缀自动机】
  15. oracle11g 数据库修改 UTF8字符集
  16. 【python】——三级菜单
  17. linux 再多的running也挡不住锁
  18. Valid Mountain Array LT941
  19. CS229 笔记04
  20. MySQL老是提示视图没有主键

热门文章

  1. 动态给drawable上色
  2. Android应用字体更改
  3. linux命令学习(2):wc 命令
  4. nginx服务器状态监控
  5. jQuery DOM 与 原生DOM 互相转换的方法
  6. 远程出发jenkins jobs
  7. StringUtils.isEmpty和StringUtils.isBlank用法
  8. angularJs的ng-class切换class
  9. [LeetCode]题解(python):113 Path Sum II
  10. Salted hash password