spring整合hibernate时,sessionFactory和datasource的关系?,数据源的作用?如果写了一个Dao类,

2025-05-08 08:46:58
推荐回答(3个)
回答1:

sessionFactory是session的工厂类,负责生产session,session是你操作hibernate的入口类(门面模式),数据源是sessionFactory的一个属性,sessionFactory拿到他主要是要传给session,因为hibernate底层操作还是通过jdbc操作完成数据的CURD操作。
hibernateDaoSupport有个属性就是sessionFactory,由于你的Dao类都继承他,所以向DAO类中注入sessionFactory时,其实就是向hibernateDaoSupport中注入了。

回答2:

当我们调用 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等方法完成持久化操作:

回答3:

sessionFactory 生产session以供Dao种方法使用
session中包含连接以供数据库操作