2010-03-12 14 views
5

¿Cuál es el mejor lugar en servlet para el código de Hibernate que devuelve HibernateSessionFactory?Conexión de la base de datos a través de Hibernate en servlets

Vi muchos ejemplos: unos ponen la conexión db en métodos de servicio. Otros: use smth como HibernateUtil (Singleton) que devuelve HibernateSessionFactory.

No sé si es seguro usar HibernateUtil en Servlets multiproceso?

Respuesta

6

Normalmente, debe usar un marco MVC a favor de Servlets directamente, pero esa no es su pregunta, y voy a suponer que tiene un buen motivo para implementar sus propios Servlets. En respuesta a la ...

Por esto - https://www.hibernate.org/hib_docs/v3/api/org/hibernate/SessionFactory.html:

implementadores deben ser multi-hilo.

y

SessionFactorys son inmutables. El comportamiento de un SessionFactory es controlado por las propiedades suministradas en el momento de la configuración. Estas propiedades se definen en Environment.

Así que está BIEN compartir una instancia de SessionFactory s.

De hecho, desde mi experiencia, su enfoque HibernateUtil es el mejor enfoque, ya que la creación de SessionFactory puede ser muy costosa.

+0

¿Qué DBCP está utilizando? Veo 2 opciones: cp3o y tomcat CP. – dmitrynikolaev

+0

Acerca de MVC: utilizo GWT como frontend, por lo que no necesito usar MVC – dmitrynikolaev

+0

solo porque GWT es una interfaz no significa que deba evitar el uso de MVC como un patrón en el lado del servidor. Los servlets realmente se sirven mejor como un Controlador. Tus servlets realmente deberían delegar el acceso a datos a otro conjunto de clases tuyas que usen hibernate. Sus servlets deberían ser completamente independientes de que hibernate exista. – whaley

Cuestiones relacionadas