Author: 江南白衣
BaseHibernateDAO的全称其实应该是BaseHibernateEntityDao,负责抽象一个Entity 的CRUD函数。
所有子类只要声明如下,即拥有如下函数:
public class BookManager extends BaseHibernateDao<Book>
随着项目深入,还会封装更多更多的函数。
目前的分页是基于Hibernate API提供分页功能的基础上,进行封装Hql和Criteria两种形式,Count,Scroll,List三种方式的分页
对于Hql形式的分页,有四个函数可供调用,如下:
mode参数--决定取得总计录数的方法:< /STRONG >
public static int COUNT_MODE = 1;
public static int SCROLL_MODE = 2;
public static int
LIST_MODE = 3;
Count方式是默认的方式,对Criteria,HQL先自动执行一次Count查询。
而如果JDBC Driver支持scroll则查询总记录数时采用scroll方式:
scrollableResults.last();
int totalCount = scrollableResults.getRowNumber();
否则,使用最慢的方式,则采用list的方式获得总记录数,如:
query.list().size();
对于Criteria形式的分页,提供了同样的类似的函数。
Criteria分页,同样支持是否scroll两种查询策略,与Hql方式是同样的道理。
另外,为了照顾某些同志可能不喜欢SS提供的分页类,所以SS的BaseHibernateDao 重构成了基类AbstractHibernateDao与BaseHibernateDao。