Red de conocimiento del abogados - Ley de patentes - ¿Cómo se crea la sesión de Hibernate?

¿Cómo se crea la sesión de Hibernate?

Hibernat

El funcionamiento de la base de datos se implementa a través de Session. La sesión aquí es diferente de la sesión que transfiere parámetros entre páginas.

Es similar a. JDBC.

Conexión en formato . La sesión es el centro de la operación de Hibernate. El ciclo de vida de los objetos, la gestión de transacciones y el acceso a la base de datos están estrechamente relacionados con la sesión.

 

La sesión es creada por HibernateSessionFactory y es segura para subprocesos, lo que permite que múltiples subprocesos de ejecución accedan a ella al mismo tiempo

HibernateSessionFactory sin datos** * Compartir problema, pero no se puede permitir que varios subprocesos compartan una sesión.

Creación del objeto SessionFactory:

Código Java

Configuración

cfg

=

new

Configuración().configure();

SessionFactory

sesiones

=

cfg .buildSessionFactory();

Cuando se crea la sesión, se utiliza una clase ThreadLocal para establecer una clase auxiliar para la gestión de sesiones. El uso de ThreadLocal puede aislar eficazmente los datos utilizados para la ejecución.

Evitar los problemas de intercambio de datos de sesión entre varios subprocesos.

//Crea una variable local de hilo.

Código Java

público

estático

final

ThreadLocal

threadlocal

=

nuevo

ThreadLocal

();

público

estático

org.hibernate.SessionFactory

sessionFactory;

//Método para obtener la sesión

pública

estática

Sessin

getSession()

throws

HibernateException{

//Devuelve el hilo actual del hilo local variables El valor de

Session

s

=

(Session)threadLocal.get();

/ /Si sessionFactory está vacío, vuelva a crear sessionFactory; si el hilo está vacío, abra una nueva sesión

if(session==null

||

!session.isOpen()){

if(sessionFactory

==

null){

rebuildSessionFactory();

p>

sesión

=

(sessionFactory

!=

null)

sessionFactory. openSession(): null;

//

Coloque la sesión de hibernación en el hilo y guárdela, siempre que el hilo no finalice, se puede obtener; a través del método get() del hilo

threadLocal.set(session return

session;

;