想简单总结下写一个比较通用的分页的方法,虽然很简单,但还是值得一写的
我想要写一个通用的分页程序,最主要要包含三个部分:
1:一个分页的javabean文件,这个文件最主要要包含几个属性,pageNumber(第几页),totalCount(记录的总数),pageSize(一页多少条记录,默认10条),data(查询出的数据,一般为List)
2:dao层关于分页的查询,主要看系统的持久层是怎么设计,如果是用数据库的内置分页,那么就在程序里去组织三层嵌套的sql语句(oracle),如果是用jdbc分页的话,那么还要看这个jdbc的驱动是否支持rs.absolute()这个方法,在数据量不大的情况下可以用这个方法,因为数据库的游标只支持向后移动,所以要达到要前移动,或者从指定位置取数据的话,只能把所有的数据缓存在jvm的resultset中,而absolute方法正是这么做的.当然要用absolute方法,Resultset应该为TYPE_SCROLL_INSENSITIVE.
想反,很多人会认为用resultset的next方法会有效率问题,其实不是,next方法并不会把查询的所有结果缓存到内存中.所以,数据量大的情况下,用resultset不会有内存溢出问题,当然Resultset应该为forward_only.
总的来说就是在大数据量的情况下,用absolute会有内存溢出的危险,至少在oracle的jdbc上是这样的.
3.就是页面的展现了,这个就是根据需求来了.,一些计算的功能最好能就在javabean中实现,这样页面会比较简单,直接取值就可以.
当前我理解的分页大概就是这个样子,呼呼.