利用hibernate + extjs来实现数据库的分页

前台页面用extjs来实现分页,在准备数据阶段,

             //定义Proxy

             var proxy = new Ext.data.HttpProxy({url:"<%=basePath%>login/workerAction!selectAllPersonInfo"});//从远程服务器获取数据
               
                //定义Reader
                var Human = new Ext.data.Record.create([
                    {name:"Name",type:"string",mapping:"name"},
                    {name:"Sex",type:"string",mapping:"sex"},
                    {name:"Birthday",type:"string",mapping:"birthday"},
                    {name:"Edu",type:"string",mapping:"edu"},
                    {name:"Dept",type:"string",mapping:"dept"},
                    {name:"Memo",type:"string",mapping:"memo"}
                ]);
                var reader = new Ext.data.JsonReader(
                    {totalProperty:"totalProperty",root:"root"},
                    Human
                );

 

              //定义Store

              var store = new Ext.data.Store({
                    proxy:proxy,
                    reader:reader
                });
                store.load({params:{start:0,limit:6}});  //第一次加载的时候,起始是0,每6条一页


               //定义分页工具栏

               var bbar = new Ext.PagingToolbar({
                    store:store,
                    pageSize:6,  //页大小
                    displayInfo:true,  //是否显示displayMsg信息
                    displayMsg:"本页显示第{0}到第{1}的信息,一共{2}记录",
                    emptyMsg:"没有记录" //如果没有记录就显示该文本信息
                });

 

 然后利用hibernate来传递两个参数:

              //进行分页查询,查询出当前页内的员工信息
         public List<Worker> selectWorkersByPage(int start,int limit){
                    List<Worker> list = new ArrayList<Worker>();
                    Session session = super.getSession(); //得到Session
                    String sql = "from Worker"; //hql语句
                    Query q = session.createQuery(sql);
                    q.setFirstResult(start);  //起始页
                   q.setMaxResults(limit);  //每页显示的最大条数
                   list = q.list();
       
                   super.releaseSession(session); //释放Session
                   return list;
              }

在Action中调用Hibernate中的方法:

//查询出所有的员工信息
    public void selectAllPersonInfo() throws IOException{
        response.setContentType("text/html;charset=utf8");
        PrintWriter out = response.getWriter();
        List<Worker> workList = new ArrayList<Worker>();
        List<Human> humanList = new ArrayList<Human>();
        List<Human> pageList = new ArrayList<Human>();
       
        int start = Integer.parseInt(request.getParameter("start"));  //得到起始和每页显示的数据
        int limit = Integer.parseInt(request.getParameter("limit"));
       
        workList = this.workerService.selectWorkersByPage(start,limit); //查询出所有的员工信息
       
        int totalProperty = this.workerService.selectAllWorker().size();  //总条数

        Iterator workIt = workList.iterator();
        while(workIt.hasNext()){
            Human human = new Human();
            Worker worker = (Worker)workIt.next();
            human.setHid(worker.getId());
            human.setName(worker.getName());
            human.setSex(worker.getSex());
            human.setBirthday(worker.getBirthday());
            human.setDept(worker.getDept());
            human.setEdu(worker.getEdu());
            human.setMemo(worker.getMemo());
           
            humanList.add(human);
        }
       
        //定义分页所需要的格式
        PageBean pageBean = new PageBean(totalProperty,humanList);
        JSONObject jObject = JSONObject.fromObject(pageBean,JsonUtil.configJson("yyyy-MM-dd"));
        out.print(jObject.toString());
        out.flush();
        out.close();
    }

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值