本文主要是介绍session,sessionfactory,datesource区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
-
sessionFactory是线程安全的,是session的工厂类。SessionFactory并不是轻量级的!实际上它的设计者的意图是让它能在整个应用中共享。典型地来说,一个项目通常只需要一个SessionFactory就够了,但是当你的项目要操作多个数据库时,那你必须为每个数据库指定一个SessionFactory。
SessionFactory在hibernate中实际起到了一个缓冲区的作用,它缓冲了Hibernate自动生成的SQL语句和一些其它的映射数据,还缓冲了一些将来有可能重复利用的数据。 -
session是由sessionfactory来创建,可以创建很多session。Session接口对于Hibernate
开发人员来说是一个最重要的接口。然而在Hibernate中,实例化的Session是一个轻量级的类,创建和销毁它都不会占用很多资源。在客户程序中,可能会不断地创建以及销毁Session对象,如果Session的开销太大,会给系统带来不良影响。但值得注意的是
Session对象是非线程安全的,因此在你的设计中,最好是一个线程只创建一个Session对象。
在Hibernate的设计者的头脑中,他们将session看作介于数据连接与事务管理一种中间接口。我们可以将session想象成一个持久对象的缓冲区,Hibernate能检测到这些持久对象的改变,并及时刷新数据库。我们有时也称Session是一个持久层管理器,因为它包含这一些持久层相关的操作,诸如存储持久对象至数据库,以及从数据库从获得它们。请注意,Hibernate
的session不同于JSP应用中的HttpSession。当我们使用session这个术语时,我们指的是Hibernate中的session,而我们以后会将HttpSesion对象称为用户session。 -
datasource数据源是注入给sessionfactory的,然后关联到session中。
-
sessionFactory需要注入给DAO,hibernateDaoSupport有个属性就是sessionFactory,由于你的Dao类都继承他,所以向DAO类中注入sessionFactory时,其实就是向hibernateDaoSupport中注入了
这篇关于session,sessionfactory,datesource区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!