1
00:00:00,150 --> 00:00:04,710
Acá tenemos un problema con nuestro código, la conexión a la base de datos está muy acoplada a esta

2
00:00:04,710 --> 00:00:05,100
clase.

3
00:00:05,220 --> 00:00:10,740
No solamente podríamos tener una consulta a la hace rato en una clase, sino podríamos tener varias

4
00:00:10,740 --> 00:00:15,300
clases que estén utilizando JDC, realizando consultas, operaciones.

5
00:00:15,450 --> 00:00:21,030
Bueno, y no es la idea de estar conectándonos una y otra vez con el Trigger Manager con el que conexión

6
00:00:21,120 --> 00:00:24,240
de forma literal en diferentes puntos de nuestra aplicación.

7
00:00:24,330 --> 00:00:25,120
Por varias razones.

8
00:00:25,140 --> 00:00:28,800
Primero, bueno, es más importante reutilización de código.

9
00:00:28,980 --> 00:00:34,590
Estaríamos duplicando la conexión en varios lugares más más estaríamos copiando parámetros de configuración

10
00:00:34,620 --> 00:00:39,060
como el string de conexión, el Yussef, el password en varias partes.

11
00:00:39,120 --> 00:00:43,290
Y qué pasa si cambia el nombre de la base dato o el nombre del usuario?

12
00:00:43,320 --> 00:00:43,850
El Yussef?

13
00:00:44,190 --> 00:00:44,820
El password.

14
00:00:44,940 --> 00:00:50,010
Ahí tendríamos que estar modificando una y otra vez en varios punto de la aplicación donde lo estamos

15
00:00:50,010 --> 00:00:50,640
utilizando.

16
00:00:50,790 --> 00:00:56,700
Es mucho mejor centralizar y llevar toda esta parte de la conexión a una clase completamente independiente

17
00:00:56,700 --> 00:00:58,500
que la podamos reutilizar mucho mejor.

18
00:00:58,620 --> 00:01:04,230
Otro problema que podríamos tener que si no conectamos con el Draven Manager, vamos a establecer una

19
00:01:04,230 --> 00:01:07,340
conexión nueva en cada lugar y una conexión a la base.

20
00:01:07,350 --> 00:01:11,400
Авто es un recurso equilibren costoso en términos de rendimiento.

21
00:01:11,520 --> 00:01:17,490
Es decir, consume bastante recurso y si abrimos muchas conexiones, vamos a tener un problema de rendimiento.

22
00:01:17,580 --> 00:01:22,050
Entonces es mucho mejor tener una sola conexión para toda nuestra aplicación y sobretodo si nuestra

23
00:01:22,050 --> 00:01:25,560
aplicación de consola o de escritorio está perfecto.

24
00:01:25,680 --> 00:01:31,740
No necesitamos más que una sola conexión a la base de datos y la podamos reutilizar implementando el

25
00:01:31,740 --> 00:01:32,730
patrón singleton.

26
00:01:32,880 --> 00:01:38,580
Ahora, claro, va a depender el tipo de aplicación, porque si es web con varios usuarios con concurrencia,

27
00:01:38,700 --> 00:01:44,220
ahí es probable que necesitemos no solamente una conexión, sino también un pool.

28
00:01:44,400 --> 00:01:49,650
Bueno, quizás una sola conexión podría ser suficiente dependiendo de cantidad usuario conectado, pero

29
00:01:49,650 --> 00:01:51,360
depende el tipo obligación de toda forma.

30
00:01:51,450 --> 00:01:56,460
Sea como sea, tenemos que centralizar esta conexión en un solo punto, en una sola clase.

31
00:01:56,640 --> 00:02:01,440
Entonces nos vamos a ir a la pestaña Proyecto con Alt 1 y vamos a crear un nuevo package.

32
00:02:01,770 --> 00:02:03,360
Vamos a crear acá nuestra clase.

33
00:02:03,480 --> 00:02:07,590
Entonces, con Alt Insert acá vamos a crear el package.

34
00:02:08,370 --> 00:02:12,810
Le podríamos llamar útil, claro, porque es una clase de utilidad.

35
00:02:13,080 --> 00:02:15,840
Y acá vamos a tener la conexión a la asalto.

36
00:02:15,960 --> 00:02:17,520
Lo mismo con Alt Insert.

37
00:02:17,820 --> 00:02:19,350
Vamos a crear una clase.

38
00:02:19,560 --> 00:02:22,740
Le vamos a llamar conexión base datos.

39
00:02:26,940 --> 00:02:31,040
Perfecto, Lleca, vamos a tener algunos atributos estatico.

40
00:02:31,140 --> 00:02:36,120
La idea de implementar un singleton, es decir, una sola conexión que le podamos reutilizar en nuestra

41
00:02:36,120 --> 00:02:36,690
aplicación.

42
00:02:36,780 --> 00:02:41,880
Bueno, los primeros atributos que necesitamos el lettering de conexión, el Yussef Einem y el Passport.

43
00:02:42,060 --> 00:02:45,960
Entonces nos vamos a la clase ejemplo por acá lo tenemos y vamos a copiar.

44
00:02:47,190 --> 00:02:52,230
Seleccionamos, copiamos y regresamos con Control Tuff.

45
00:02:52,800 --> 00:02:56,670
Volvemos a Conexión Base Auto Perfecto y acá pegamos.

46
00:02:56,850 --> 00:03:03,860
Pero tienen que ser atributos del tipo estático bueno y private private static.

47
00:03:09,330 --> 00:03:10,260
Y también el password.

48
00:03:13,680 --> 00:03:17,730
Y por último, el atributo de conexión, que es el más importante el singleton

49
00:03:21,870 --> 00:03:25,470
conexión, conexión también punto y coma.

50
00:03:25,740 --> 00:03:30,050
Vamos a importar con alt enter, importar clase ok.

51
00:03:30,300 --> 00:03:31,200
D. Ya se cuela.

52
00:03:31,500 --> 00:03:37,170
El siguiente paso bueno es crear un método estático Get Connection para establecer la conexión.

53
00:03:37,320 --> 00:03:40,230
Y vamos a preguntar si anulo el connection.

54
00:03:40,320 --> 00:03:43,650
No conectamos con el travian manager y asignamos la conexión.

55
00:03:43,770 --> 00:03:47,160
De lo contrario, si con Echo es distinto, nulo existe.

56
00:03:47,280 --> 00:03:48,360
Devolvemos la conexión.

57
00:03:48,540 --> 00:04:01,170
Public static Connection Документы Instance Lleca preguntamos if if connection es igual a nulo.

58
00:04:03,280 --> 00:04:05,920
Perfecto, entonces conectaron

59
00:04:08,470 --> 00:04:10,190
igual al Driver Manager.

60
00:04:12,580 --> 00:04:17,440
Punto Geet conecta con los parámetros, en este caso Wireless.

61
00:04:19,010 --> 00:04:22,130
El Yussef net y el password.

62
00:04:22,940 --> 00:04:23,510
Perfecto.

63
00:04:23,870 --> 00:04:27,590
Bien IECA en el error no pide manejar excepciones.

64
00:04:27,860 --> 00:04:34,300
Entonces, sobre el error con alt enter relanzado la acepción en la firma del método Construís.

65
00:04:34,460 --> 00:04:38,600
Entonces seleccionamos a Exception la primera opción y listo.

66
00:04:38,750 --> 00:04:39,470
Qué faltaría.

67
00:04:39,540 --> 00:04:44,410
Bueno, devolver el Connection return connection.

68
00:04:46,880 --> 00:04:47,450
Ya lo tenemos.

69
00:04:47,720 --> 00:04:53,720
Se fijan bastante simple los parámetros de conexión, la conexión que estatica singleton.

70
00:04:53,960 --> 00:04:56,090
Acá preguntamos si es igual a null.

71
00:04:56,210 --> 00:04:59,270
No conectamos y la devolvemos, pero puede ser.

72
00:04:59,270 --> 00:05:01,260
Con Hechen ya existe el distinto null.

73
00:05:01,280 --> 00:05:02,780
Simplemente la devuelve.

74
00:05:03,170 --> 00:05:03,890
Hace Semple.

75
00:05:04,460 --> 00:05:07,130
Entonces una sola conexión para toda la aplicación.

76
00:05:07,370 --> 00:05:08,750
Ahora la utilizamos.

77
00:05:08,810 --> 00:05:11,000
Nos vamos a ejemplo Jcsé por acá.

78
00:05:11,240 --> 00:05:12,080
Y esto es todo acá.

79
00:05:12,200 --> 00:05:13,040
Ya no es necesario.

80
00:05:13,610 --> 00:05:17,030
Entonces simplemente lo seleccionamos y lo eliminamos.

81
00:05:17,840 --> 00:05:19,130
Se fijan mucho más limpio.

82
00:05:19,370 --> 00:05:21,530
Esto acá también es tócalos.

83
00:05:21,530 --> 00:05:25,400
Seleccionamos y lo cambiamos por nuestra clase de conexión.

84
00:05:27,350 --> 00:05:27,980
Punto.

85
00:05:28,080 --> 00:05:30,440
Guet instance y levantamos.

86
00:05:32,120 --> 00:05:38,550
Defecan funciona perfecto, entonces cabe que invoquemos el conexión base auto guet instance dentro

87
00:05:38,550 --> 00:05:43,860
de nuestra aplicación va a devolver siempre la misma instancia, pero insisto, va a depender el tipo

88
00:05:43,980 --> 00:05:46,950
de aplicación que estemos desarrollando con una conexión.

89
00:05:47,040 --> 00:05:53,460
Es más que suficiente, pero si ya tenemos una aplicación web con varios usuario conectado con concurrencia,

90
00:05:53,580 --> 00:05:55,970
bueno, hoy necesitamos un poule conexiones.

91
00:05:56,010 --> 00:06:01,290
Pero no se preocupen porque el pull de conexiones por lo general vienen implementado en los servidores

92
00:06:01,290 --> 00:06:06,000
de aplicación y simplemente solicitamos una conexión del pool y listo.

93
00:06:06,120 --> 00:06:11,520
O incluso en los framework como en Spring también lo bembo todo lo que hay conexión auto todo lo que

94
00:06:11,520 --> 00:06:12,360
es el DataSource.

95
00:06:12,390 --> 00:06:13,650
Todo esto ya viene implementado.

96
00:06:13,710 --> 00:06:17,880
Prácticamente no tenemos que hacer nada más que solicitar una conexión.

97
00:06:17,970 --> 00:06:20,550
Pero bien, ese es otro tema que veremos en su momento.

98
00:06:20,850 --> 00:06:24,810
Yo creo que nuestro código está mucho más simple, de hecho y más reutilizable.

99
00:06:25,080 --> 00:06:31,080
Ahora podemos utilizar esta clase en cualquier parte en el punto donde vemos una consulta select o un

100
00:06:31,080 --> 00:06:37,530
insert un de alguna operación al Ayato y está perfecto porque estamos reutilizando la conexión incluso

101
00:06:37,800 --> 00:06:40,420
si queremos cambiar o cambió el Yussef.

102
00:06:40,460 --> 00:06:42,450
Net el password el nombre lo acepto.

103
00:06:42,540 --> 00:06:46,950
Lo modificamos acá en un solo lugar y no en cualquier parte de nuestro código.

104
00:06:47,040 --> 00:06:48,120
Bien, eso por ahora.

105
00:06:48,180 --> 00:06:50,090
Continuamos en la siguiente clase.
