Zusammenfassung der Ressource
Hibernate (7,8)
- SPRING
- Spring
- Es uno de los frameworks más
usados en Java
- Capacidad de realizar Inyección de
Dependencias y tiene un framework para
desarrollo Web (Spring MVC)
- Para trabajar con el contenedor de Inyección de
Dependencias
- 1.- Preparando Spring: Cómo inicializar Spring para que pueda
funcionar.
- Spring necesita dos pasos para poder ser usado:
- 1.- Crear un fichero de configuración
- 2.- Crear un objeto con el contexto de Spring desde Java
- 2.- Asignado Beans: Cómo indicarle a Spring que queremos que
inyecte otro objeto en alguna propiedad de nuestro objeto.
- Hay tres formas de asignar un Bean a una
propiedad/variable/método en Spring:
- 1.- Mediante el fichero de configuración
applicationContext.xml
- 2.- Mediante las anotaciones
- 3.- Mediante código
- Definiendo Beans: Cómo decirle a Spring los objetos que pueden ser
inyectados.
- Spring permite dos formas de
definir los beans
- En el fichero
applicationContext.xml
- Mediante anotaciones
- Spring MVC
- Mejora el uso del API de Servlets pero sin
estar muy alejados de ellos. En Spring en vez
de usar Servlets usaremos clases Java
llamadas controladores.
- Se integra
perfectamente
con la parte de
Inyección de
Dependencias
de Spring.
- Ficheros de configuración
- web.xml: se añade código al
fichero web.xml.
- Se deberá crear el fichero
dispatcher-servlet.xml en la carpeta
/WEB-INF.
- context.xml se utiliza para configurar el
javax.sql.DataSource que usará el pool de
conexiones.
- hibernate.cfg.xml es necesario modificarlo para
indicarle a Hibernate que obtenga la conexiones
a través del DataSource
- applicationContext.xml
- Manejo de peticiones
- realiza a través de los
métodos del controlador
- Cada método
gestionará las
peticiones de una
o más URLs y
puede haber
tantos métodos
como se desee.
- Cada método que
controla peticiones
Web tendrá la
anotación
@RequestMapping
- ARQUITECTURA
- Excepciones
- En una operación con
Hibernate se pueden
lanzar 4 excepciones.
- 1.- javax.validation.ConstraintViolationException
- Se reconvierte en una
BussinessException. Mediante:
BussinessException. throw new
BussinessException(cve);
- 2.- org.hibernate.exception.ConstraintViolationException
- 3.- RuntimeException
- Relanza la misma excepción mediante: throw ex;
- 4.-Exception
- Relanza la excepción envuelta en una RuntimeException
mediante: throw new RuntimeException(ex);
- BussinessException
- Se relanza sin ser modificada, mediante:. throw ex;
- Avisa que los datos de las entidades contienen algún
tipo de error que debe ser modificado.
- Ventajas
- Unificar el
tratamiento de
las excepciones
- Simplificar el uso de
javax.validation.ConstraintViolationException
- Mejorar los mensajes de error
- El código de BussinessException
- DAO
- Problema del patrón
DAO es la repetición
de código para cada
una de las entidades.
- Los interfaces
- Los objetos DAO son
interfaces asi se pueden
tener varias
implementaciones para
cada interfaz
- Para evitar definir los
mismos métodos en cada
interfaz DAO se ha creado un
interfaz padre
- Creando un nuevo
objeto DAO
- Crear un nuevo interfaz que herede de una interfaz padre. El
ejemplo es el siguiente: public interface MunicipioDAO
extends GenericDAO<Municipio,Integer> { }
- Crear una nueva implementación para Hibernate que herede e
implemente la interfaz. El ejemplo es el siguiente: public class
MunicipioDAOImplHibernate extends
GenericDAOImplHibernate<Municipio,Integer> implements
MunicipioDAO { }
- Crear objetos DAO desde la aplicación, codigo de
ejemplo: UsuarioDAO usuarioDAO = new
UsuarioDAOImplHibernate(); ProfesorDAO
profesorDAO = new ProfesorDAOImplHibernate();
- Paquetes
- Clases de un proyecto organizadas en paquetes
- Hay dos paquetes pricnipales
- com.fpmislata.persistencia
- Van las clases relacionadas
con la persistencia pero que
se reutilizan en los diversos
proyectos.
- Dentro de el hay 3 paquetes
- com.fpmislata.persistencia.dao:
Tiene todo los relacionado con el
interfaz DAO.
- com.fpmislata.persistencia.dao.impl:
Contiene la implementación genérica
del interfaz DAO.
- com.fpmislata.persistencia.hibernate: Contiene la
clase de utilidad de Hibernate .
- ejemplo04
- Aquí ponemos las clases
que son específicas de
nuestro proyecto.
- Dentro hay 4 paquetes
- ejemplo04.dominio
- ejemplo04.persistencia.dao
- ejemplo04.persistencia.dao.impl
- ejemplo04.presentacion
- HibernateUtil
- SessionFactory
- 3 formas de acceder al
objeto SessionFactory
- Inyección de
Dependencias.
- A cualquier objeto se le asigna una
referencia a SessionFactory mediante
el uso de un framework de Inyección
de Dependencias.
- Objeto global.
- Tener a SessionFactory como
una variable global así cualquier
objeto puede acceder a él .
- Paso del objeto
entre clases.
- Pasar el objeto SessionFactory
por todos los objetos hasta
llegar al que lo necesita.
- Debe ser creada ya que no está
incluida en Hibernate
- Contiene código
(método) estático
- Inicializa Hibernate, crea y da
acceso al objeto SessionFactory
- El código que genera NetBeans para la clase HibernateUtil