sessionFactory与session以及datasource

sessionFactory与session以及datasource

标签: sshSSHSShjava

2012-12-13 10:15 6221人阅读 评论(1) 举报mysql

 分类:sql

JAVA(112) 数据库

版权声明:本文为博主原创文章,未经博主容许不得转载。安全

      1.sessionFactory是线程安全的,是session的工厂类。SessionFactory并非轻量级的!实际上它的设计者的意图是让它能在整个应用中共享。典型地来讲,一个项目一般只须要一个SessionFactory就够了,可是当你的项目要操做多个数据库时,那你必须为每一个数据库指定一个SessionFactory。  SessionFactory在hibernate中实际起到了一个缓冲区的做用,它缓冲了Hibernate自动生成的SQL语句和一些其它的映射数据,还缓冲了一些未来有可能重复利用的数据。session

     2. 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。ssh

     3.datasource数据源是注入给sessionfactory的,而后关联到session中。spa

     4.sessionFactory须要注入给DAO,hibernateDaoSupport有个属性就是sessionFactory,因为你的Dao类都继承他,因此向DAO类中注入sessionFactory时,其实就是向hibernateDaoSupport中注入了.net

相关文章
相关标签/搜索