J2EE关于分页数据的访问

最近由于课程设计,使用SSH框架开发了一个小型网上选课系统,在开发过程中,涉及到了数据页面显示的分页。

这次的开发算是自己独立使用框架开发的第一个J2EE项目,由于缺乏开发经验,所以这次的分页处理出现了很多问题。

当时分页使用的是在Action中写了三个方法:check() 、prePage()、nextPage(),并且将数据是一次性从数据库读出来,存放在List对象中,然后存在session中。

后来做了一些考虑:

1.可以自己写一个工具类,处理分页

2.数据的读取是一次性读取出来存放在session中还是每次点击下一页(上一页)再去读更好,哪个性能更优


对于这些问题,我后来做了一些处理,自己写了个接口ISimpleton并写了实现类SimpletonImpl,主要包括三个方法:

	/**
 	 * 分页
 	 * @param obj
 	 * @param pageSize
 	 * @param currentPage
 	 * @return Map pageMap
 	 * @author Simpleton 2012-12-11
 	 */
 	public Map pagePart(Object obj,int pageSize, int currentPage);
 	
 	/**
 	 * 上一页
 	 * @param pageMap
 	 * @return Map pageMap
 	 * @author Simpleton 2012-12-11
 	 */
 	public Map prePage(Object obj,int pageSize, int currentPage);
 	
 	/**
 	 * 下一页
 	 * @param pageMap
 	 * @return Map pageMap
 	 * Simpleton 2012-12-11
 	 */
 	public Map nextPage(Object obj,int pageSize, int currentPage);

该工具类虽然实现了,但是由于最近比较忙,还有要做修改的地方。


另外对于读数据的问题,考虑到如果一次性读取数据,然后存放在session中,由于session生存期太长,服务器内存吃不消,性能不佳,然后去JAVA吧请教了大牛们,得到了一个很好的答案:

一次性查询出来是绝对不行的,这太搞笑了,可以一次查3页出来,比如查第7页,可以把6,7,8都查出来,显示第7页,别人点了下一页时直接显示第8页的同时后台偷偷读出第9页

这个方法兼容了数据量很大的问题,还好的方法



你可能感兴趣的:(【JAVA】)