所有的session连接对象都是由SessionFactory生产的。
SessiinFactory的创建有3种方式。
1.hibernate创建HibernateUtil工具类,用于初始化SessionFactory对象,这种方式是Hibernate1,2支持的,如今已经过时了。
其获取连接的方式为:
测试如下:
2.Hibernate3,4提供了新的注册机制,可通过注册来创建SessionFactory
注意:上面两种方式都需要读取hibernate.cxf.xml文件来实现SessionFactory的注入,如果你的配置文件不是hibernate.cxf.xml,可在new Configuration().configure(String config)处指明配置文件。
3.Spring整合hibernate,需让Dao继承HibernateDaoSupport类,并将SessionFactory对象注入HibernateDaoSupport类中,实现SessionFactory的注入。在MyBatis中则不需要再注入,因为MyBatis的父类已经自动注入了SessionFactory对象,可以直接使用。而Hibernate则不行,必须手动注入。
Session获取连接的方式有两种:
a.openSession():打开一个连接,用完之后必须手动关闭。
b.getCurrentSession():获取当前连接,用完之后不需要再手动关闭。