hibernate3+spring+struts的分页问题
//查找数据库中的相关信息列表的方法,附分页
public List queryList(String curPage,String l_user){
//如果页数是空,那么把页数设置为第一页
long start=System.currentTimeMillis();
if(curPage==null){
curPage="1";
}
//创建查询,把传过来的参数转化成Login对象
Login login=(Login)this.getHibernateTemplate().get(Login.class,l_user);
//创建查询,把传过来的参数转化成Login对象
List list=this.getSession().createQuery("from Addrlist a where a.login=:user").setParameter("user",login)
//指定从当前记录开始
.setFirstResult((Integer.parseInt(curPage)-1)*PAGE_ROW_COUNT)
//指定每页显示多少行
.setMaxResults(PAGE_ROW_COUNT).list();
//关闭会话工厂
this.getSession().close();
long end=System.currentTimeMillis();
System.out.println(end-start+"queryList");
return list;
}
//获取当前会话中的当前行数
public int rowCount(){
//获得连接工厂中当前的会话,获取行数信息
List list=this.getSession().createCriteria(Addrlist.class)
.setProjection(Projections.projectionList()
.add(Projections.rowCount())).list();
//获得集合的第一项信息
int result=Integer.parseInt(list.get(0).toString());
this.getSession().close();
System.out.println(result+"rowCount");
return result;
}
//获得总页数
public int pageCount(){
long start=System.currentTimeMillis();
//获得总行数
int rowCount=this.rowCount();
/*
* 计算总页数,如果行数和显示页数的余数等于0
* 那么总页数就是总行数除以每页显示的行数,
* 否则总页数等于总行数除以每页显示的行数加1
*/
if(rowCount%PAGE_ROW_COUNT==0){
pageCount=rowCount/PAGE_ROW_COUNT;
}else{
pageCount=(rowCount/PAGE_ROW_COUNT)+1;
}
System.out.println(pageCount);
long end=System.currentTimeMillis();
System.out.println(end-start+"pageCount");
return pageCount;
}
一开始还行但点了七八次页面之后分页就慢的厉害以上是我写的方法,有没有高手指点一下,我这三个方法那里写的不合适