BaseHibernateDao

Author: 江南白衣

1.概述    

 BaseHibernateDAO的全称其实应该是BaseHibernateEntityDao,负责抽象一个Entity 的CRUD函数。

     所有子类只要声明如下,即拥有如下函数:

public class BookManager extends BaseHibernateDao<Book>

1.基本函数

      随着项目深入,还会封装更多更多的函数。

2.分页函数

   目前的分页是基于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。