ssh-hibernate中分页的展示

来源:互联网 发布:上海银行淘宝金卡图片 编辑:程序博客网 时间:2024/06/08 16:54

hibernate中分页查询
PageBean相关的实体类

1、pageBean的创建

package com.itheima.bos.utils;import java.util.List;import org.hibernate.criterion.DetachedCriteria;/** * 封装分页属性 * @author Lenovo * */public class PageBean {    private int currentPage;//当前页码    private int pageSize;//每页显示的记录数    private DetachedCriteria detachedCriteria;//查询条件    private int total;//总记录数    private List rows;//当前页需要展示的数据集合    public int getCurrentPage() {        return currentPage;    }    public void setCurrentPage(int currentPage) {        this.currentPage = currentPage;    }    public int getPageSize() {        return pageSize;    }    public void setPageSize(int pageSize) {        this.pageSize = pageSize;    }    public DetachedCriteria getDetachedCriteria() {        return detachedCriteria;    }    public void setDetachedCriteria(DetachedCriteria detachedCriteria) {        this.detachedCriteria = detachedCriteria;    }    public int getTotal() {        return total;    }    public void setTotal(int total) {        this.total = total;    }    public List getRows() {        return rows;    }    public void setRows(List rows) {        this.rows = rows;    }}

2、通用方法中的Dao

    /**     * 通用的分页查询方法     */    @Override    public void pageQuery(PageBean pageBean) {        int currentPage=pageBean.getCurrentPage();        int pageSize=pageBean.getPageSize();        DetachedCriteria detachedCriteria=pageBean.getDetachedCriteria();        //查询total        detachedCriteria.setProjection(Projections.rowCount());//指定hibernate框架发出SQL的形式        List<Long> countList = (List<Long>) this.getHibernateTemplate().findByCriteria(detachedCriteria);        Long count=countList.get(0);        pageBean.setTotal(count.intValue());        //查询rows        detachedCriteria.setProjection(null);//设置回来        int firstResult=(currentPage-1)*pageSize;        int maxResults=pageSize;        List rows = this.getHibernateTemplate().findByCriteria(detachedCriteria, firstResult, maxResults);        pageBean.setRows(rows);    }

3、Action的实现

/**     * 查询所有的包括分页查询     * 返回的格式应该是json     * @throws IOException      */    public String pageQuery() throws IOException{        PageBean pageBean=new PageBean();        pageBean.setCurrentPage(page);        pageBean.setPageSize(rows);        //创建离线提交查询对象        DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Staff.class);        pageBean.setDetachedCriteria(detachedCriteria);        staffService.pageQuery(pageBean);        //使用json-lib将pageBean对象转为json,通过流出流写回页面        //JSONObject----将单一对象转为json        //JSONArray----将数组或者集合对象转为json        JsonConfig jsonConfig=new JsonConfig();        //指定哪些属性不需要转json        jsonConfig.setExcludes(new String[]{"currentPage","detachedCriteria","pageSize"});        String json = JSONObject.fromObject(pageBean,jsonConfig).toString();        ServletActionContext.getResponse().setContentType("text/json;charset=utf-8");        ServletActionContext.getResponse().getWriter().print(json);        return NONE;    }

4、页面的展示效果
这里写图片描述

0 0