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]] | ||