有了第一节的学习,我们就可以加载和储存一些Event对象了,但在加载和储存前需要一些基本的设置来启动Hibernate,在Hibernate启动过程中包括要创建一个全局的SessoinFactory,并把它储存在应用程序代码容易访问的地方;SessionFactory可以创建并打开新的Session;一个Session代表一个单线程的单元操作,SessionFactory则是个线程安全的全局对象,只需要被实例化一次。
网络配图
我们将创建一个HibernateUtil辅助类(helper class)来负责启动Hibernate和更方便地操作SessionFactory。
代码实现如下:
package util;
import org.hibernate.*;
import org.hibernate.cfg.*;
public class HibernateUtil {
private static final SessionFactory sessionFactory;
static {
try {
// 创建一个 SessionFactory
sessionFactory = new Configuration().configure().buildSessionFactory();
} catch (Throwable ex) {
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
网络配图
这个类是在它的静态初始化过程(仅当加载这个类的时候被JVM执行一次)中产生全局的SessionFactory。把HibernateUtil.java放在开发目录的源代码路径下,为方便使用要与放events的包并列:
.
+lib
<Hibernate and third-party libraries>
+src
+events
Event.java
Event.hbm.xml
+util
HibernateUtil.java
hibernate.cfg.xml
+data
网络配图
好了,这一节的学习先到这里,后面章节中会继续学习Hibernate。我们学习方式是每一节学习一个知识点(每天花10分钟学习)。