Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

unidades:10_servidor:05_basededatos [2014/09/01 13:20]
admin [Interfaz DAO]
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 184: Línea 184:
  
 ===== Ejemplo ===== ===== Ejemplo =====
-El ejemplo de esta unidad es exactamente lo que acabamos de contar pero es un nuevo proyecto llamado "​basedatos"​+El ejemplo de esta unidad es exactamente lo que acabamos de contar pero en un nuevo proyecto llamado "​basedatos"​
 + 
 +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 siguientes clases referidas al modelo de datos: 
 +    * SeguroMedico 
 +    * Coberturas 
 +    * Enfermedades 
 +    * Sexo 
 +  * Se han añadido las siguientes clases para el acceso a datos mediante el DAO 
 +    * SeguroMedicoDAO 
 +    * SeguroMedicoDAOImplJDBC 
 +    * BussinessException 
 +    * BussinessMessage 
 +  * Se ha modificado el fichero ''​applicationContext.xml''​ para poder inyectar la clase ''​SeguroMedicoDAOImplJDBC''​ 
 +  * 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 han reorganizado los paquetes Java para que se organicen según la siguiente estructura:​ 
 +    * Paquete ''​modelo'':​ Las clases con el modelo de datos. Ej. ''​SeguroMedico''​ 
 +    * 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. 
 + 
 +Se muestra ahora la imagen con la estructura del proyecto: 
 + 
 +{{:​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 
 +public class SeguroMedicoController { 
 +     
 +    @Autowired 
 +    private JsonTransformer jsonTransformer;​ 
 +     
 +    @Autowired 
 +    SeguroMedicoDAO seguroMedicoDAO;​ 
 +     
 +    @RequestMapping(value = {"/​SeguroMedico"​}) 
 +    public void prueba(HttpServletRequest httpRequest,​ HttpServletResponse httpServletResponse) throws Exception { 
 +        SeguroMedico seguroMedico=seguroMedicoDAO.get(1);​ 
 +        String jsonSeguroMedico=jsonTransformer.toJson(seguroMedico);​ 
 +         
 +        httpServletResponse.getWriter().println(jsonSeguroMedico);​ 
 +    } 
 +
 +</​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>​
 Este ejemplo se encuentra en  git en [[https://​github.com/​logongas/​cursoangularjs/​tree/​master/​basedatos]] Este ejemplo se encuentra en  git en [[https://​github.com/​logongas/​cursoangularjs/​tree/​master/​basedatos]]
 </​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]]
unidades/10_servidor/05_basededatos.1409570424.txt.gz · Última modificación: 2014/09/01 13:20 por admin
Ir hasta arriba
CC Attribution-Share Alike 3.0 Unported
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0