Hola y bienvenidos a esta elección.
A continuación vamos a revisar el ejercicio de creación de una capa de datos utilizando JDBC.
Están listos.
Vamos podemos observar en la figura el diagrama de clases que vamos a utilizar para este ejercicio.
Básicamente es lo que hemos venido trabajando pero ahora vamos a formalizar el desarrollo de nuestra
aplicación creando una capa de datos.
Para ello vamos a tener lo siguiente Vamos a tener un paquete llamado personas punto JDBC dentro de
este paquete vamos a tener nuestra clase llamada conexión la cual contiene estos atributos y tiene también
estos métodos el método de conexión y los métodos Clowes según hemos revisado.
Pero ahora lo diferente es que vamos a agregar el concepto de patrón de diseño DAW Data Access obvie
así que en lugar de acceder directamente a la clase personada o JDBC vamos a definir primero una interface
y esta interface es la que van a utilizar los demás paquetes por ejemplo el paquete que va a ser el
test de esta interfaz de persona dado e indirectamente lo que vamos a obtener es una instancia de la
clase de persona dado JDBC esto para que en cualquier momento podamos cambiar la tecnología que implementa
nuestra interfase persona dado.
Así que en este caso esta interfase es independiente de la tecnología y esta implementación ya es dependiente
de la tecnología en este caso la tecnología de JDBC pero bien podríamos tener una clase que fuera persona
dado JPA por poner un ejemplo la tecnología de JPA se ve en el curso de IAVA empresarial en este nivel
únicamente nos vamos a enfocar a la tecnología de jdbc y esta clase contiene los elementos que ya hemos
venido trabajando.
Contiene las cadenas para comunicarnos hacia la base de datos los cuales de INSERT UPDATE Digit y select
y también esta clase contiene los métodos para poder comunicarnos con la tabla de personas.
Así que por ello es que ya estamos formalizando el patrón dado Data Access obvie y por otro lado también
nuestra clase de dominio persona está formalizando el patrón de diseño DTO data transfer Objet no necesariamente
se tiene que llamar esta clase de persona DTO podría ser simplemente persona como lo hemos venido trabajando
pero lo vamos a renombrar así para que quede claro el concepto de que ya estamos trabajando también
el patrón de diseño DTO así que la interface DAO como podemos observar ya recibe como parámetros el
objeto persona Dto ya que se está transfiriendo este objeto entre distintas capas.
En este caso en particular entre distintos paquetes y finalmente también vamos a modificar nuestro test
de personas para poner a prueba todo este código así que ese es el diagrama de clases que vamos a utilizar
para nuestro ejercicio.
Vamos a empezar abrimos nuestro Ihre de Apache NetBeans y vamos a crear una copia de nuestro proyecto
de nuestro proyecto de la lección 4 creamos una copia y los depositamos ahora en la elección.
5 va a ser el mismo nombre.
Manejo JDBC pero lo depositamos en la lección 5
cerramos el proyecto de la lección 4 damos clic derecho Claws y solamente dejamos el proyecto de la
lección 5 bien con esto ya podemos empezar a trabajar y vamos a empezar a revisar nuestras clases así
que revisamos nuestros paquetes en el paquete de datos tenemos nuestra clase de conexión.
Esta clase ya contiene todos los elementos que necesitamos y ya está funcionando correctamente y ya
la podemos reutilizar en cualquier parte de nuestro código que lo necesitemos así que esta clase ya
no vamos a modificar nada.
Tenemos nuestra clase persona JDBC y en este caso esta clase es la implementación de la de persona dado
así que esta clase si la vamos a modificar vamos a crear la interface persona dado así que sobre el
paquete de datos damos clic derecho y seleccionamos Java interface ya que va a ser una interface y no
una clase y creamos la interface persona dao
la depositamos en el paquete de datos y damos clic en Finalizar
y definimos los métodos ya que para ellos esta interfase para conocer los métodos que vamos a poder
utilizar en esta interfase y definimos los métodos públic regresa un entero se llama insert y recibe
un objeto de tipo Persona dto.
Para ello necesitamos primero renombrar nuestra clase de dominio persona vamos a renombrar lo damos
clic derecho rFactor posteriormente arruinarme iba a ser ahora persona dto.
Seleccionamos esta opción para que renombra e incluso si hay comentarios y damos siguiendo el factor
bien con esto ya sea renombrado nuestra clase y ahora sí podemos utilizar este nombre.
Recibimos el argumento de persona Dto y la variable se llama persona posteriormente definimos el método
update que va a ser muy similar recibe un argumento persona Dto importamos la clase de persona Dto y
ahora definimos el método Lilit que también es muy similar
persona Dto y recibe un objeto de tipo Persona y finalmente agregamos el método de Select el cual regresa
una lista de objetos de tipo Persona Dto data transfer Object del objeto persona se llama select y no
recibe ningún argumento.
Importamos esta clase de IAVA punto y útil y con eso ya tenemos la interfase persona dado.
Ahora lo que vamos a hacer es que nuestra clase persona JDBC vamos a renombrar la damos un derecho refractor
y posteriormente seleccionamos Benaim y ahora va a ser persona dado JDBC ya que está utilizando la tecnología
de JDBC para implementar esta funcionalidad damos William rFactor vamos a abrir esta clase y ahora esta
clase va a implementar la interface persona dado así que ponemos implement persona Down
quien nos está marcando un error debido a que los métodos deben también de arrojar la acepción SQL section
así que vamos a modificar esto dentro de nuestra interface
escribimos throws SQL exception todos los métodos deben propagar esta excepción en dado caso de que
se arroje
así que nuestros métodos ya están arrojando esta excepción guardamos cambios y podemos observar que
ya nos quitó ese error y con eso ya tenemos correctamente configurada la clase de persona dado JDBC.
Así que con esto ya hemos modificado nuestra clase que implementa la interfase persona dado utilizando
la tecnología de JDBC.
Como hemos comentado podría haber otras clases que implementen esta misma interface pero con otra tecnología
como puede ser la tecnología de JPA ya va Persistence API bien vamos a continuar y finalmente en nuestro
paquete de test abrimos nuestra clase de manejo de personas
vamos a quitar este código
vamos a dejar el manejo de transacciones pero vamos a probar únicamente el método Select.
Así que descubrimos lo siguiente listo persona Dto ya que vamos a transferir objetos de tipo personas
Dto a esta clase y recibimos una lista de personas
usamos nuestra variable persona JDBC y mandamos a llamar el método Select importamos esta clase de cada
punto y útil y recorremos cada uno de los elementos son objetos de tipo Persona Dto
y proporcionamos la lista que vamos a recorrer y finalmente imprimimos cada uno de los objetos
de tipo Dto como hemos comentado.
Agregar el sufijo Dto no es necesario sin embargo le estamos agregando para que quede claro que estamos
aplicando este patrón de diseño
pero aquí lo diferente también que vamos a hacer es que esta declaración esta línea de código no vamos
a utilizar la clase concreta para definir la variable sino que vamos a utilizar la interface
importamos esta interfase persona dado y en lugar de que la variable se llama en persona JDBC se va
a llamar persona dado ya que ya no nos interesa saber la tecnología que está implementando esta clase
de ataques sóviet sino que debe de ser lo más genérica posible así que presionamos contra el R para
renombrar y podemos renombrar esta variable persona dado y en todos los lugares donde se encuentre.
Esta variable se va a modificar el nombre y damos Enter bien así que el único lugar donde estamos observando
que vamos a manejar la implementación de JDBC es la creación de este objeto.
Pero del lado izquierdo vamos a manejar el tipo interface y así cuando utilicemos el objeto persona
dado puntos elec.
Esta línea de código ya no sabemos qué tecnologías se está utilizando simplemente sabemos que se está
interactuando con la base de datos y se está mandando a llamar el método Select pero la implementación
ya no sabemos el detalle de la tecnología que se está utilizando por ejemplo si damos control click
sobre este método nos lleva al método de la interfase y no a la implementación así que con eso también
estamos aplicando las mejores prácticas para separar las capas y separar las responsabilidades.
Así que con esto ya estamos configurando correctamente nuestra clase y aplicando las mejores prácticas
para la creación de nuestra capa de datos.
Finalmente vamos a ejecutar nuestro código damos un derecho Broomfield
y podemos observar el listado de personas se ha ejecutado correctamente debido a que es únicamente un
celeb es opcional hacer el Comi de la transacción no es necesario hacer un comité ya que nos está alterando
el estado de la base de datos pero en este caso estamos dejando la transacción por si se requiriera
ejecutar alguna otra operación sobre la tabla de personas.
Así que con esto estamos creando ya formalmente nuestra capa de datos para comunicarnos con la tabla
de personas ya hemos creado nuestro paquete de datos el cual contiene la clase de conexión la interfase
de persona dado y la implementación de personada o jdbc y por otro lado la clase de dominio persona
DTO hemos modificado nuestra prueba manejo personas para que apliquemos las mejores prácticas y utilicemos
correctamente nuestra capa de datos bien se les deja como ejercicio hacer lo propio pero para la clase
de usuario JDBC así que deben de crear también su interface deben de modificar la clase de usuario para
convertirla en usuarios DTO y también deben de modificar la prueba de manejo de usuarios para que utilice
ahora de manera correcta la capa de datos para la entidad de usuario.
Así que eso es todo por esta elección y nos vemos en el siguiente vídeo.
Saludos.