Muestra las diferencias entre dos versiones de la página.
unidades:10_servidor:05_basededatos [2014/09/01 13:52] admin [Ejemplo] |
unidades:10_servidor:05_basededatos [2014/09/02 23:31] (actual) admin [Interfaz DAO] |
||
---|---|---|---|
Línea 137: | Línea 137: | ||
} | } | ||
- | SeguroMedicoDAO <|.. SeguroMedicoImplJDBC | + | SeguroMedicoDAO <|.. SeguroMedicoDAOImplJDBC |
</uml> | </uml> | ||
Línea 143: | Línea 143: | ||
<sxh xml> | <sxh xml> | ||
- | <bean class="es.cursohibernate.basedatos.persistencia.impl.SeguroMedicoImplJDBC" /> | + | <bean class="es.cursohibernate.basedatos.persistencia.impl.SeguroMedicoDAOImplJDBC" /> |
</sxh> | </sxh> | ||
- | Ya que la clase ''SeguroMedicoImplJDBC'' se encontrará en el paquete ''es.cursohibernate.basedatos.persistencia.impl''. | + | Ya que la clase ''SeguroMedicoDAOImplJDBC'' se encontrará en el paquete ''es.cursohibernate.basedatos.persistencia.impl''. |
Ahora en los controladores de Spring ya podremos hacer lo siguiente | Ahora en los controladores de Spring ya podremos hacer lo siguiente | ||
Línea 187: | Línea 187: | ||
Para aclarar mas el ejemplo vamos a hacer un pequeño resumen de los cambios en el proyecto respecto al ejemplo del tema anterior: | Para aclarar mas el ejemplo vamos a hacer un pequeño resumen de los cambios en el proyecto respecto al ejemplo del tema anterior: | ||
- | * Se han añadido las clases referidas al modelo de datos: | + | * Se han añadido las siguientes clases referidas al modelo de datos: |
* SeguroMedico | * SeguroMedico | ||
* Coberturas | * Coberturas | ||
* Enfermedades | * Enfermedades | ||
* Sexo | * Sexo | ||
- | * Se han añadido las clase para el acceso a datos mediante el DAO | + | * Se han añadido las siguientes clases para el acceso a datos mediante el DAO |
* SeguroMedicoDAO | * SeguroMedicoDAO | ||
* SeguroMedicoDAOImplJDBC | * SeguroMedicoDAOImplJDBC | ||
Línea 198: | Línea 198: | ||
* BussinessMessage | * BussinessMessage | ||
* Se ha modificado el fichero ''applicationContext.xml'' para poder inyectar la clase ''SeguroMedicoDAOImplJDBC'' | * Se ha modificado el fichero ''applicationContext.xml'' para poder inyectar la clase ''SeguroMedicoDAOImplJDBC'' | ||
- | * Se ha modificado el fichero ''context.xml'' para añadir el pool de conexiones | + | * Se ha modificado el fichero ''context.xml'' para configurara el pool de conexiones. |
* Se ha instalado la base de datos junto con la tabla ''seguromedico'' | * Se ha instalado la base de datos junto con la tabla ''seguromedico'' | ||
- | * Se han reorganizado los uaquetes Java para que se organicen según la siguiente estructura: | + | * Se han reorganizado los paquetes Java para que se organicen según la siguiente estructura: |
- | * Paquete ''modelo'': Las clases con el modelo de datos | + | * Paquete ''modelo'': Las clases con el modelo de datos. Ej. ''SeguroMedico'' |
- | * Paquete ''persistencia'': Las clase que permiten acceder a la base de datos como por ejemplo la clase DAO. | + | * Paquete ''persistencia'': Las clase que permiten acceder a la base de datos. Ej. ''SeguroMedicoDAO''. |
* Paquete ''presentacion'': Todo lo referido a Web y REST , como el controlador, la clases de JSON ,etc. | * Paquete ''presentacion'': Todo lo referido a Web y REST , como el controlador, la clases de JSON ,etc. | ||
- | Por último hemos modificado | + | Se muestra ahora la imagen con la estructura del proyecto: |
- | <sxh java> | + | {{:unidades:10_servidor:estructura_proyecto.png?nolink|}} |
+ | |||
+ | <note tip> | ||
+ | Los paquetes Java empiezan por ''es.cursohibernate.basedatos'' ya que este proyecto es para configurar todo lo relativo a la base de datos. No confundirlo con los paquetes para acceso a datos que aqui se llaman ''persistencia'' | ||
+ | </note> | ||
+ | |||
+ | Por último hemos modificado el controlador para usar ahora como ejemplo la clase del modelo ''SeguroMedico'' en vez de la clase ''Usuario'', haciendo los siguientes cambios: | ||
+ | * El controlador ahora se llama ''SeguroMedicoController'' y ahora se accede a él mediante la URL [[http://localhost:8084/basedatos/api/SeguroMedico]]. | ||
+ | * Hemos usado el DAO para obtener los datos realmente de la base de datos en vez de ponerlos directamente en el código como se hacía en el tema anterior. | ||
+ | |||
+ | El código Java de ''SeguroMedicoController'' es el siguiente: | ||
+ | <sxh java;title:SeguroMedicoController.java;highlight: [7,8,12]> | ||
@Controller | @Controller | ||
public class SeguroMedicoController { | public class SeguroMedicoController { | ||
Línea 226: | Línea 237: | ||
} | } | ||
</sxh> | </sxh> | ||
+ | * Línea 7: Esta línea le dice a Spring que debe buscar una implementación del interfaz que hay a continuación y asignarle una instancia a la propiedad. | ||
+ | * Línea 8: Declaramos ahora la propiedad privada seguroMedicoDAO pero no indicamos el objeto que lo implementa. Spring inyectará una instancia de la clase ''es.cursohibernate.basedatos.persistencia.impl.SeguroMedicoDAOImplJDBC'' tal y como lo hemos definido en el fichero ''applicationContext.xml'' | ||
+ | * Línea 12: Hacemos uso del DAO para obtener los datos del seguro médico identificado por el ''IdSeguroMedico=1''. | ||
+ | |||
+ | Si ahora navegamos a la URL [[http://localhost:8084/basedatos/api/SeguroMedico]] se mostrará lo siguiente: | ||
+ | {"idSeguro":1,"nif":"12345678Z","nombre":"Patata","ape1":"Cano","edad":41,"sexo":"H","casado":true,"numHijos":3,"embarazada":false,"coberturas":"oftalmologia":true,"dental":false,"fecundacionInVitro":false},"enfermedades":{"corazon":true,"estomacal":false,"rinyones":false,"alergia":true,"nombreAlergia":"Acaros"}} | ||
<note> | <note> | ||
Línea 231: | Línea 248: | ||
</note> | </note> | ||
===== Referencias ===== | ===== Referencias ===== | ||
+ | * [[http://cursohibernate.es/doku.php|Curso de Hibernate con Spring]] | ||
+ | * [[http://cursohibernate.es/doku.php?id=unidades:01_introduccion_orm:03_mysql|Instalar MySQL]] | ||
+ | * [[http://cursohibernate.es/doku.php?id=unidades:01_introduccion_orm:05_driver_mysql|Driver JDBC de MySQL]] | ||
+ | * [[http://cursohibernate.es/doku.php?id=patrones:pool_conexiones|Pool de conexiones]] | ||
+ | * [[http://cursohibernate.es/doku.php?id=unidades:07_arquitectura:00_start|Arquitectura]] | ||
+ | * [[http://cursohibernate.es/doku.php?id=unidades:07_arquitectura:03_dao|DAO]] |