zoukankan      html  css  js  c++  java
  • jQuery EasyUI教程之datagrid应用(一)

    最近一段时间都在做人事系统的项目,主要用到了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:'姓名',100},    
                      {field:'pNumber',title:'电话',100},    
                      {field:'pBirthday',title:'生日',100,align:'right'},   
                      {field:'pRemark',title:'备注',100,align:'right'}
                  ]] 
        }) ;
        
        
    })
    </script>
    <table id="dg"></table> 
    </body>
    </html>

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

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

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

    修改下之前的代码:

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

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

     

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

  • 相关阅读:
    设置DataGridView垂直滚动条
    在自定义MessageBox控件里添加键盘回车事件。
    通过访问注册表,表判断系统是否装excel
    让文本框里只能输入数字
    新晋菜鸟的错误
    jdbc连接数据库以及crud(简单易懂,本人亲测可用 有源代码和数据库)
    springboot 错误求解决
    maven 导包报错
    最短路径Dijkstra
    读写者问题
  • 原文地址:https://www.cnblogs.com/20gg-com/p/6120547.html
Copyright © 2011-2022 走看看