(三)Hbiernate操作类

        如果从最早的版本开始Hibernate里面只有三个核心的处理类:Configuration,SessionFactory,Session.

1.取得文件配置信息org.hibernate.cfg.Configuration

    所有的数据库的连接信息包括映射信息都保存在hibernate.cfg.xml文件里面,而整个Hbiernate如果想执行这些程序,那么自然需要读取此文件,所以Configuration类的主要功能就是将所有的配置信息读取,也就是说如果想要打开数据库连接,也需要Configuration,这个类定义有如下方法:

        ●构造方法

public Configuration()

        ●读取默认资源(hibernate.cfg.xml):

public Configuration configure()
                        throws HibernateException

        ●读取默认资源:

public Configuration configure(String resource)
                        throws HibernateException

         在Configuration类里面最为重要的一个方法:

        ●[废弃]创建SessionFactroy

public SessionFactory buildSessionFactory()
                                   throws HibernateException
        ●创建SessionFactroy

public SessionFactory buildSessionFactory(ServiceRegistry serviceRegistry)
                                   throws HibernateException

从Hibernate4.x开始出现了一个新的类:org.hibernate.service.ServiceRegistry,这个类主要功能是进行服务的一个操作,此类的操作可以忽略掉.

2.数据库的连接管理都由SessionFactory负责管理,而在SessionFactory里面以后需要控制缓存的操作,SessionFatroy可以打开新的数据库操作--Session,方法:

        ●打开Session

Session openSession()
             throws HibernateException

3.数据库连接操作对象:org.hibernate.Session;

        ●此类负责所有的数据处理操作以及事务控制,

        ●在此类里面定义有如下操作方法

          保存数据返回主键:

Serializable save(Object object)

          修改数据,没有返回结果:

void update(Object object)

          删除数据:问题:没有返回结果

void delete(Object object)
           根据ID读取:
<T> T load(Class<T> theClass,
           Serializable id)
           根据ID读取:

<T> T get(Class<T> entityType,
          Serializable id)

            创建Criteria查询

@Deprecated
Criteria createCriteria(Class persistentClass)
             创建Query查询

Query createQuery(String queryString)

            创建并启用一个事务

Transaction beginTransaction()

            创建一个事务但没有启用

Transaction getTransaction()           

4.事务处理接口:org.hibernate.Transaction

        所有的Hibernate操作默认都不是自动提交的,因为自动提交本身就是一个错误,所以Transaction主要负责事务控制.

        有如下几个控制的操作方法:

         ●事务提交,更新执行:

void commit()

         ●事务回滚:

void begin()
          ●打开事务,如果使用的是beginTransaction()方法创建的事务,此操作自动执行
void begin()
        这些类都是在Hibernate开发之中的重点功能类,所以必须要清楚其每一个类的作用,如果可以将核心的方法记住,因为在整个Hibernate里面关注的都是这几个类.


;