求解 大神

weixin_43717290 2019-04-13 11:08:18
用SSH怎么实现分页的功能
...全文
61 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_43717290 2019-04-25
  • 打赏
  • 举报
回复
真心谢谢你😜 这个帮助我很多
toward_south 2019-04-13
  • 打赏
  • 举报
回复
这是我之前练习写的分页功能 PageBean public class Page { //记录列表 private List<UserOrder> list; //总记录数 private int totalRecord; //总页数 private int totalPage; //当前页标号 private int currentPage; //每页的记录数 private int pageSize; //是否为第一页 private boolean isFirstPage; //是否为最后一页 private boolean isLastPage; //是否有前一页 private boolean hasPreviousPaeg; //是否有下一页 private boolean hasNextPage; public List<UserOrder> getList() { return list; } public void setList(List<UserOrder> list) { this.list = list; } public int getTotalRecord() { return totalRecord; } public void setTotalRecord(int totalRecord) { this.totalRecord = totalRecord; } public int getTotalPage() { return totalPage; } public void setTotalPage(int totalPage) { this.totalPage = totalPage; } 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 boolean isFirstPage() { return isFirstPage; } public void setFirstPage(boolean isFirstPage) { this.isFirstPage = isFirstPage; } public boolean isLastPage() { return isLastPage; } public void setLastPage(boolean isLastPage) { this.isLastPage = isLastPage; } public boolean isHasPreviousPaeg() { return hasPreviousPaeg; } public void setHasPreviousPaeg(boolean hasPreviousPaeg) { this.hasPreviousPaeg = hasPreviousPaeg; } public boolean isHasNextPage() { return hasNextPage; } public void setHasNextPage(boolean hasNextPage) { this.hasNextPage = hasNextPage; } /** * 计算总页数 静态方法 * @param pageSize 每页的记录数 * @param allRow 总记录数 * @return 总页数 */ public static int countTatalPage(int pageSize,int totalRecord){ int toalPage = totalRecord % pageSize == 0 ? totalRecord/pageSize : totalRecord/pageSize + 1; return toalPage; } /** * 计算当前页开始的记录 * @param pageSize 每页记录数 * @param currentPage 当前第几页 * @return 当前页开始记录号 */ public static int countOffset(int pageSize,int currentPage){ int offset = pageSize * (currentPage - 1); return offset; } /** * 计算当前页,若为0或者请求的URL中没有“?page = ”则用1代替 * @param page 传入的参数(可能为空,即0 则返回1) * @return */ public static int countCurrentPage(int page,int totalPage){ int curpage; if(page == 0) { curpage = 1; }else if(page > totalPage){ curpage = totalPage; }else { curpage = page; } return curpage; } } DAO层 public interface PageDao { /* * User类分页查询 * @param hql 查询条件 * @param offset 开始记录 * @param length 一次查询几条记录 * @return 查询的记录集合 */ public List<User> queryForPage(final String hql,final int offset,final int length); DaoImpl public class PageDaoImpl implements PageDao{ @Autowired private SessionFactory sessionFactory = null; /* * 分页查询 * @param hql 查询条件 * @param offset 开始记录 * @param length 一次查询几条记录 * @return 查询的记录集合 */ @SuppressWarnings("unchecked") public List<User> queryForPage(final String hql,final int offset, final int length) { List<User> pageList = sessionFactory.getCurrentSession().createQuery(hql).setFirstResult(offset).setMaxResults(length).list(); return pageList; } ServiceImpl /* * 分页查询 * @param pageSize 每页显示多少记录 * @param currentPage 当前页 * @return 封装了分页信息的bean */ @Transactional(propagation = Propagation.REQUIRES_NEW, isolation=Isolation.READ_COMMITTED) public PageJ queryForPage(int pageSize, int page) { final String hql = "from User";//查询语句 int allRow = pageDao.getAllRowCount(hql);//记录总数 int totalPage = PageJ.countTatalPage(pageSize, allRow);//总页数 final int offset = PageJ.countOffset(pageSize, page); //当前页开始记录 final int length = pageSize; final int currentPage = PageJ.countCurrentPage(page);//当前页 List<User> list = pageDao.queryForPage(hql, offset, length); //将分页信息保存到bean里面 PageJ pages = new PageJ(); pages.setPageSize(pageSize); pages.setCurrentPage(currentPage); pages.setAllRow(allRow); pages.setTotalPage(totalPage); pages.setList(list); pages.init(); return pages; } 大概内容就是这些,现在看这些代码还有很大的优化空间。思路都差不多。看你怎么使用了

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧