Hibernate API之Session

Hibernate API之Session

Session是Hibernate运作的核心,对象的生命周期、事务的管理以及数据库的存取都和他密切相关,有效的管理session是使用Hibernate的重点。

在各种的session管理方案中,ThreadLocal模式得到了大量的使用。

ThreadLocal是Java线程绑定机制,通过ThreadLocal存取的数据,总是与当前线程相关,也就是说,JVM为每个运行的程序,绑定了私有的本地实例存取空间,从而为多线程环境常出现的并发访问问题提供的隔离机制。

session是SessionFactory创建的,由于SessionFactory是线程安全的,可以让多个线程同时存取SessionFactory而不会引起数据共享的问题。session是线程不安全的,让多个线程共享一个session,会引起线程冲突或线程混乱。

使用了ThreadLocal变量,可以解决session问题,使用ThreadLocal可以有效的隔离多线程所使用的数据,这样可以解决多线程数据共享的问题。

猜你喜欢

转载自aoyouzi.iteye.com/blog/2039685