sessionFactory是session的工厂类,负责生产session,session是你操作hibernate的入口类(门面模式),数据源是sessionFactory的一个属性,sessionFactory拿到他主要是要传给session,因为hibernate底层操作还是通过jdbc操作完成数据的CURD操作。
hibernateDaoSupport有个属性就是sessionFactory,由于你的Dao类都继承他,所以向DAO类中注入sessionFactory时,其实就是向hibernateDaoSupport中注入了。
当我们调用 Configuration config=new Configuration().configure();
时候Hibernate会自动在当前的CLASSPATH中搜寻hibernate.cfg.xml文件并将其读取到内存作为后继操作的基础配置。
SessionFactory 负责创建Session的实例。我们可以通过Configuation实例创建SessionFactory;
SessionFactory sessionFactory=config.buildSessionFactory();
Session 是持久层操作的基础,相当于JDBC中的Connnection。
Session session=sessionFactory.openSession(); //获得session
之后,我们就可以调用Session所提供的save,find,flush等方法完成持久化操作:
sessionFactory 生产session以供Dao种方法使用
session中包含连接以供数据库操作