关于页数的问题,谁能解释一下这些代码什么意思

com.dao.impl相关代码
public List selectBeanList(final int start,final int limit,final String where) {
return (List)this.getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(final Session session)throws HibernateException, SQLException {

List list = session.createQuery("from User "+where)
.setFirstResult(start)
.setMaxResults(limit)
.list();
return list;
}
});
}

麻烦解释下start、limit、where分别是指什么,
然后这句话
List<User> list = session.createQuery("from User "+where)
            .setFirstResult(start)
            .setMaxResults(limit)
            .list();
是什么意思?

com.action相关代码
//注册用户列表
public String userlist() {
    HttpServletRequest request = this.getRequest();
    String username = request.getParameter("username");
    StringBuffer sb = new StringBuffer();
    sb.append(" where ");

    if (username != null && !"".equals(username)) {
        sb.append("username like '%" + username + "%'");
        sb.append(" and ");
        request.setAttribute("username", username);
    }

    sb.append("   deletestatus=0 and role=1 order by id desc ");
    String where = sb.toString();

    int currentpage = 1;
    int pagesize = 10;
    if (request.getParameter("pagenum") != null) {
        currentpage = Integer.parseInt(request.getParameter("pagenum"));
    }
    int total = userDao.selectBeanCount(where.replaceAll(
            "order by id desc", ""));
    request.setAttribute("list", userDao.selectBeanList((currentpage - 1)
            * pagesize, pagesize, where));
    request.setAttribute("pagerinfo", Pager.getPagerNormal(total, pagesize,
            currentpage, "method!userlist", "共有" + total + "条记录"));
    request.setAttribute("url", "method!userlist");
    request.setAttribute("url2", "method!user");
    request.setAttribute("title", "注册用户管理");
    this.setUrl("admin/user/userlist.jsp");
    return SUCCESS;

}

麻烦解释一下where.replaceAll那里是什么意思

where其实是从另外一个地方传过来的字符串参数,一般是查询条件。
where在本质上是String,所以他支持String的所有api,所以where.replaceAll就很正常,这里是模式
替换字符串里面的东西。

start和limit也都是方法传入的int型参数,是分页用的,start就是起始条目,limit就是需要读取的条目数量。

如果有帮助,希望结帖

 start是从第多少条记录开始查,第一条为0,limit是查多少条记录,例如start=3,limit=4是查询第四条到第七条的记录,
 where 是一个hql的条件如 where User.age=5,
 replaceAll是替换,那段代码的意思是将order by id desc替换为空,即去掉它