1
00:00:00,600 --> 00:00:02,430
Hola y bienvenidos a esta elección.

2
00:00:02,430 --> 00:00:09,030
A continuación vamos a revisar el ejercicio de creación de una capa de datos utilizando JDBC.

3
00:00:09,030 --> 00:00:10,040
Están listos.

4
00:00:10,080 --> 00:00:17,140
Vamos podemos observar en la figura el diagrama de clases que vamos a utilizar para este ejercicio.

5
00:00:17,160 --> 00:00:21,930
Básicamente es lo que hemos venido trabajando pero ahora vamos a formalizar el desarrollo de nuestra

6
00:00:21,930 --> 00:00:25,330
aplicación creando una capa de datos.

7
00:00:25,380 --> 00:00:33,030
Para ello vamos a tener lo siguiente Vamos a tener un paquete llamado personas punto JDBC dentro de

8
00:00:33,030 --> 00:00:41,690
este paquete vamos a tener nuestra clase llamada conexión la cual contiene estos atributos y tiene también

9
00:00:41,720 --> 00:00:46,560
estos métodos el método de conexión y los métodos Clowes según hemos revisado.

10
00:00:48,110 --> 00:00:54,110
Pero ahora lo diferente es que vamos a agregar el concepto de patrón de diseño DAW Data Access obvie

11
00:00:54,740 --> 00:01:01,760
así que en lugar de acceder directamente a la clase personada o JDBC vamos a definir primero una interface

12
00:01:02,420 --> 00:01:08,440
y esta interface es la que van a utilizar los demás paquetes por ejemplo el paquete que va a ser el

13
00:01:08,440 --> 00:01:14,260
test de esta interfaz de persona dado e indirectamente lo que vamos a obtener es una instancia de la

14
00:01:14,260 --> 00:01:22,520
clase de persona dado JDBC esto para que en cualquier momento podamos cambiar la tecnología que implementa

15
00:01:22,760 --> 00:01:24,890
nuestra interfase persona dado.

16
00:01:24,890 --> 00:01:31,340
Así que en este caso esta interfase es independiente de la tecnología y esta implementación ya es dependiente

17
00:01:31,340 --> 00:01:37,490
de la tecnología en este caso la tecnología de JDBC pero bien podríamos tener una clase que fuera persona

18
00:01:37,490 --> 00:01:45,830
dado JPA por poner un ejemplo la tecnología de JPA se ve en el curso de IAVA empresarial en este nivel

19
00:01:45,860 --> 00:01:53,090
únicamente nos vamos a enfocar a la tecnología de jdbc y esta clase contiene los elementos que ya hemos

20
00:01:53,090 --> 00:01:54,520
venido trabajando.

21
00:01:54,980 --> 00:02:02,450
Contiene las cadenas para comunicarnos hacia la base de datos los cuales de INSERT UPDATE Digit y select

22
00:02:03,250 --> 00:02:08,690
y también esta clase contiene los métodos para poder comunicarnos con la tabla de personas.

23
00:02:10,640 --> 00:02:18,450
Así que por ello es que ya estamos formalizando el patrón dado Data Access obvie y por otro lado también

24
00:02:18,450 --> 00:02:26,730
nuestra clase de dominio persona está formalizando el patrón de diseño DTO data transfer Objet no necesariamente

25
00:02:26,730 --> 00:02:32,520
se tiene que llamar esta clase de persona DTO podría ser simplemente persona como lo hemos venido trabajando

26
00:02:33,210 --> 00:02:37,980
pero lo vamos a renombrar así para que quede claro el concepto de que ya estamos trabajando también

27
00:02:38,280 --> 00:02:47,050
el patrón de diseño DTO así que la interface DAO como podemos observar ya recibe como parámetros el

28
00:02:47,050 --> 00:02:54,550
objeto persona Dto ya que se está transfiriendo este objeto entre distintas capas.

29
00:02:54,550 --> 00:03:00,010
En este caso en particular entre distintos paquetes y finalmente también vamos a modificar nuestro test

30
00:03:00,070 --> 00:03:06,280
de personas para poner a prueba todo este código así que ese es el diagrama de clases que vamos a utilizar

31
00:03:06,310 --> 00:03:07,610
para nuestro ejercicio.

32
00:03:07,840 --> 00:03:14,260
Vamos a empezar abrimos nuestro Ihre de Apache NetBeans y vamos a crear una copia de nuestro proyecto

33
00:03:15,380 --> 00:03:22,690
de nuestro proyecto de la lección 4 creamos una copia y los depositamos ahora en la elección.

34
00:03:22,690 --> 00:03:25,000
5 va a ser el mismo nombre.

35
00:03:25,350 --> 00:03:30,630
Manejo JDBC pero lo depositamos en la lección 5

36
00:03:33,610 --> 00:03:41,670
cerramos el proyecto de la lección 4 damos clic derecho Claws y solamente dejamos el proyecto de la

37
00:03:41,670 --> 00:03:49,970
lección 5 bien con esto ya podemos empezar a trabajar y vamos a empezar a revisar nuestras clases así

38
00:03:49,970 --> 00:03:55,370
que revisamos nuestros paquetes en el paquete de datos tenemos nuestra clase de conexión.

39
00:03:55,460 --> 00:04:00,940
Esta clase ya contiene todos los elementos que necesitamos y ya está funcionando correctamente y ya

40
00:04:00,950 --> 00:04:05,870
la podemos reutilizar en cualquier parte de nuestro código que lo necesitemos así que esta clase ya

41
00:04:05,870 --> 00:04:07,150
no vamos a modificar nada.

42
00:04:09,500 --> 00:04:18,720
Tenemos nuestra clase persona JDBC y en este caso esta clase es la implementación de la de persona dado

43
00:04:20,070 --> 00:04:26,250
así que esta clase si la vamos a modificar vamos a crear la interface persona dado así que sobre el

44
00:04:26,250 --> 00:04:33,900
paquete de datos damos clic derecho y seleccionamos Java interface ya que va a ser una interface y no

45
00:04:33,920 --> 00:04:39,940
una clase y creamos la interface persona dao

46
00:04:42,960 --> 00:04:46,200
la depositamos en el paquete de datos y damos clic en Finalizar

47
00:04:49,770 --> 00:04:54,510
y definimos los métodos ya que para ellos esta interfase para conocer los métodos que vamos a poder

48
00:04:54,510 --> 00:05:05,300
utilizar en esta interfase y definimos los métodos públic regresa un entero se llama insert y recibe

49
00:05:05,360 --> 00:05:08,950
un objeto de tipo Persona dto.

50
00:05:08,960 --> 00:05:17,650
Para ello necesitamos primero renombrar nuestra clase de dominio persona vamos a renombrar lo damos

51
00:05:17,650 --> 00:05:23,050
clic derecho rFactor posteriormente arruinarme iba a ser ahora persona dto.

52
00:05:23,820 --> 00:05:28,650
Seleccionamos esta opción para que renombra e incluso si hay comentarios y damos siguiendo el factor

53
00:05:30,750 --> 00:05:35,840
bien con esto ya sea renombrado nuestra clase y ahora sí podemos utilizar este nombre.

54
00:05:39,980 --> 00:05:49,600
Recibimos el argumento de persona Dto y la variable se llama persona posteriormente definimos el método

55
00:05:49,990 --> 00:06:03,020
update que va a ser muy similar recibe un argumento persona Dto importamos la clase de persona Dto y

56
00:06:03,020 --> 00:06:05,660
ahora definimos el método Lilit que también es muy similar

57
00:06:10,570 --> 00:06:18,940
persona Dto y recibe un objeto de tipo Persona y finalmente agregamos el método de Select el cual regresa

58
00:06:19,000 --> 00:06:31,340
una lista de objetos de tipo Persona Dto data transfer Object del objeto persona se llama select y no

59
00:06:31,340 --> 00:06:33,650
recibe ningún argumento.

60
00:06:33,860 --> 00:06:40,110
Importamos esta clase de IAVA punto y útil y con eso ya tenemos la interfase persona dado.

61
00:06:40,310 --> 00:06:50,030
Ahora lo que vamos a hacer es que nuestra clase persona JDBC vamos a renombrar la damos un derecho refractor

62
00:06:51,830 --> 00:07:00,640
y posteriormente seleccionamos Benaim y ahora va a ser persona dado JDBC ya que está utilizando la tecnología

63
00:07:00,850 --> 00:07:08,560
de JDBC para implementar esta funcionalidad damos William rFactor vamos a abrir esta clase y ahora esta

64
00:07:08,560 --> 00:07:16,000
clase va a implementar la interface persona dado así que ponemos implement persona Down

65
00:07:20,560 --> 00:07:26,760
quien nos está marcando un error debido a que los métodos deben también de arrojar la acepción SQL section

66
00:07:27,090 --> 00:07:29,610
así que vamos a modificar esto dentro de nuestra interface

67
00:07:32,130 --> 00:07:42,820
escribimos throws SQL exception todos los métodos deben propagar esta excepción en dado caso de que

68
00:07:42,820 --> 00:07:43,330
se arroje

69
00:07:49,730 --> 00:07:57,720
así que nuestros métodos ya están arrojando esta excepción guardamos cambios y podemos observar que

70
00:07:57,720 --> 00:08:03,990
ya nos quitó ese error y con eso ya tenemos correctamente configurada la clase de persona dado JDBC.

71
00:08:04,290 --> 00:08:10,260
Así que con esto ya hemos modificado nuestra clase que implementa la interfase persona dado utilizando

72
00:08:10,260 --> 00:08:12,170
la tecnología de JDBC.

73
00:08:12,450 --> 00:08:18,510
Como hemos comentado podría haber otras clases que implementen esta misma interface pero con otra tecnología

74
00:08:19,230 --> 00:08:27,580
como puede ser la tecnología de JPA ya va Persistence API bien vamos a continuar y finalmente en nuestro

75
00:08:27,580 --> 00:08:31,300
paquete de test abrimos nuestra clase de manejo de personas

76
00:08:35,470 --> 00:08:36,970
vamos a quitar este código

77
00:08:42,020 --> 00:08:47,110
vamos a dejar el manejo de transacciones pero vamos a probar únicamente el método Select.

78
00:08:47,510 --> 00:08:58,720
Así que descubrimos lo siguiente listo persona Dto ya que vamos a transferir objetos de tipo personas

79
00:08:58,730 --> 00:09:04,920
Dto a esta clase y recibimos una lista de personas

80
00:09:07,770 --> 00:09:17,550
usamos nuestra variable persona JDBC y mandamos a llamar el método Select importamos esta clase de cada

81
00:09:17,640 --> 00:09:23,970
punto y útil y recorremos cada uno de los elementos son objetos de tipo Persona Dto

82
00:09:27,490 --> 00:09:33,100
y proporcionamos la lista que vamos a recorrer y finalmente imprimimos cada uno de los objetos

83
00:09:36,370 --> 00:09:39,720
de tipo Dto como hemos comentado.

84
00:09:39,720 --> 00:09:45,300
Agregar el sufijo Dto no es necesario sin embargo le estamos agregando para que quede claro que estamos

85
00:09:45,300 --> 00:09:47,010
aplicando este patrón de diseño

86
00:09:49,870 --> 00:09:55,990
pero aquí lo diferente también que vamos a hacer es que esta declaración esta línea de código no vamos

87
00:09:55,990 --> 00:10:02,470
a utilizar la clase concreta para definir la variable sino que vamos a utilizar la interface

88
00:10:05,840 --> 00:10:12,380
importamos esta interfase persona dado y en lugar de que la variable se llama en persona JDBC se va

89
00:10:12,380 --> 00:10:19,070
a llamar persona dado ya que ya no nos interesa saber la tecnología que está implementando esta clase

90
00:10:19,130 --> 00:10:25,100
de ataques sóviet sino que debe de ser lo más genérica posible así que presionamos contra el R para

91
00:10:25,100 --> 00:10:32,550
renombrar y podemos renombrar esta variable persona dado y en todos los lugares donde se encuentre.

92
00:10:32,580 --> 00:10:39,480
Esta variable se va a modificar el nombre y damos Enter bien así que el único lugar donde estamos observando

93
00:10:39,720 --> 00:10:45,010
que vamos a manejar la implementación de JDBC es la creación de este objeto.

94
00:10:45,360 --> 00:10:51,960
Pero del lado izquierdo vamos a manejar el tipo interface y así cuando utilicemos el objeto persona

95
00:10:51,990 --> 00:10:53,180
dado puntos elec.

96
00:10:53,310 --> 00:10:58,920
Esta línea de código ya no sabemos qué tecnologías se está utilizando simplemente sabemos que se está

97
00:10:58,920 --> 00:11:04,230
interactuando con la base de datos y se está mandando a llamar el método Select pero la implementación

98
00:11:04,380 --> 00:11:10,180
ya no sabemos el detalle de la tecnología que se está utilizando por ejemplo si damos control click

99
00:11:10,420 --> 00:11:18,080
sobre este método nos lleva al método de la interfase y no a la implementación así que con eso también

100
00:11:18,320 --> 00:11:24,320
estamos aplicando las mejores prácticas para separar las capas y separar las responsabilidades.

101
00:11:24,440 --> 00:11:30,170
Así que con esto ya estamos configurando correctamente nuestra clase y aplicando las mejores prácticas

102
00:11:30,350 --> 00:11:33,040
para la creación de nuestra capa de datos.

103
00:11:33,110 --> 00:11:37,010
Finalmente vamos a ejecutar nuestro código damos un derecho Broomfield

104
00:11:42,180 --> 00:11:48,220
y podemos observar el listado de personas se ha ejecutado correctamente debido a que es únicamente un

105
00:11:48,220 --> 00:11:55,090
celeb es opcional hacer el Comi de la transacción no es necesario hacer un comité ya que nos está alterando

106
00:11:55,090 --> 00:12:00,400
el estado de la base de datos pero en este caso estamos dejando la transacción por si se requiriera

107
00:12:00,460 --> 00:12:04,620
ejecutar alguna otra operación sobre la tabla de personas.

108
00:12:04,640 --> 00:12:10,480
Así que con esto estamos creando ya formalmente nuestra capa de datos para comunicarnos con la tabla

109
00:12:10,480 --> 00:12:17,590
de personas ya hemos creado nuestro paquete de datos el cual contiene la clase de conexión la interfase

110
00:12:17,590 --> 00:12:24,880
de persona dado y la implementación de personada o jdbc y por otro lado la clase de dominio persona

111
00:12:24,970 --> 00:12:32,580
DTO hemos modificado nuestra prueba manejo personas para que apliquemos las mejores prácticas y utilicemos

112
00:12:32,580 --> 00:12:39,810
correctamente nuestra capa de datos bien se les deja como ejercicio hacer lo propio pero para la clase

113
00:12:39,900 --> 00:12:46,950
de usuario JDBC así que deben de crear también su interface deben de modificar la clase de usuario para

114
00:12:46,950 --> 00:12:52,380
convertirla en usuarios DTO y también deben de modificar la prueba de manejo de usuarios para que utilice

115
00:12:52,440 --> 00:12:56,980
ahora de manera correcta la capa de datos para la entidad de usuario.

116
00:12:57,240 --> 00:13:00,560
Así que eso es todo por esta elección y nos vemos en el siguiente vídeo.

117
00:13:00,560 --> 00:13:01,170
Saludos.
