Continuamos con una nueva sección de transacciones, pero vamos a partir primero con el ejemplo de Singleton.
Se acuerdan que tuvimos una sola conexión porque muy importante para ejecutar varias sentencias.
Un bloque siempre tiene que estar dentro de la misma conexión y en distinta.
Entonces vamos a por primero el ejemplo que tenemos con Singleton.
Un ejemplo anterior.
Por lo tanto, vamos a cerrar este proyecto.
Vamos a abrir el otro proyecto con el singleton que teníamos.
Lo copiamos, lo pegamos.
Es decir, vamos a clonar un proyecto.
A partir del otro que teníamos del Singleton ya íbamos a implementar transacciones.
Por supuesto, en todo lo que pude conexiones.
También podemos implementar transacciones y también lo vamos a ver, pero lo vamos a ver en otro ejemplo
separado.
La idea es verlo primero con Singleton, después con un poco de conexiones, pero ahí va a ser un poco
distinto, porque en el pool recuerden que en el repositorio.
Bueno, acá lo tenemos.
Por cada método, por ejemplo en dictar en por ahí se fija en guardar.
En cada método obtenemos una conexión del pool.
Quizás sea la misma, quizás sea distinta.
Bueno, va a depender.
Pero por ejemplo, si queremos ejecutar varias sentencias, diferentes métodos del repositorio, obviamente
tenemos que tener la misma conexión.
En ese caso tendríamos que quitar o desacoplar el que con hecho esto acá en del repositorio, es decir,
quitarlo de cada método.
Y eso lo podríamos colocar afuera, es decir, llevar el connection o tener conexión del pool desde
fuera del repositorio, ya sea en una clase con el método main o mucho mejor, como lo vamos a saber
con una clase servis.
Claro, ahí vamos a ver un ejemplo de una implementación de un servicio en Java, que es una capa de
negocio que se le conoce como bisnes layer, que es una capa por sobre el repositorio o dado de hecho
un service.
Vamos a ver que podría tener un atributo de un solo dado o repositorio, pero también muchos podría
tener varios atributos de distinto repositorio, y esto pueden interactuar unos con otro bajo la misma
conexión, bajo la misma transacción.
Claro, si estamos actualizando un dato o insertando en un repositorio, en una tabla y falla, va a
ser un rollback y va a devolver el estado anterior de los datos que quizá o probablemente se modificaron
en otra tabla.
Se fijan y esa es la idea.
Entonces, por eso importante el service, una nos permite manejar transacciones y además dentro de
esa transacción atómica única podríamos hacer interactuar y comunicarse varios repositorio.
Recuerden, un repositorio por general está asociado a una tabla de la aciano.
Bien, entonces continuemos.
Vamos a crear en nuestra base dato un nuevo campo en la tabla productos.
Bien, nos vamos a warband por acá.
Locale instance.
Iniciamos sesión.
Esquemas, tablas, por acá tenemos producto y acá tenemos la columna, se fijan bien.
Entonces click derecho en productos halter tb vamos a crear un campo, ese cabo perfecto.
Ese campo podría ser un parchar.
Bueno, ese campo es un código, da lo mismo un código numérico alfanumérico de un producto en particular,
como una etiqueta que se le da y siempre es único.
Muy similar a un identificador como Leidy.
Pero acá puede ser.
Qué cosa?
Bien, entonces se puede hacer un barter, por ejemplo, 10 como máximo.
Bien, pero me interesa que sea único.
Entonces va a tener un yunque, un campo ionic index, una llave única.
Por lo tanto, no se puede duplicar.
No puede haber un registro que contenga un ese cabu que ya exista en otro registro.
Hay lanzaría una excepción y eso es lo que quiero ver.
Quiero simular un error, duplicar, por ejemplo, un producto con un mismo se cabu y simular acepcion
para realizar el rollback y ver este manejo de transacción y así ver visualmente cómo.
Por ejemplo, si creo un registro, pero después actualizo otro y al actualizar el otro falla el inser
o el crear el producto anterior.
El registro anterior no se va a ejecutar porque se hace un rollback.
Todos los datos que modificamos o creamos o eliminamos no surgen efecto.
Bien, acá tenemos el campo único.
Barter 10 es eso es todo.
Entonces ahora aplicamos.
Se fijan hasta telt la tabla Productos de la seda tallada curso agregamos un campo de Cabu Barter de
10, pues el nulo de ningún problema puede ser nulo y agregamos lo que si un índice de que sea único
un yunque te dejan agregar Ionic Index y le da un nombre aplicamos.
Finalizar.
Ahí lo tenemos.
Entonces ahora vamos a ir acá productos, seleccionar todos y acá la tenemos, por ejemplo 5 solamente
para el 5 teclado Corsair CA 95 mecánico.
Entonces le vamos a agregar acá el cabo doble clic.
No se compliquen cualquier cosa, a veces de un 2, 3, 4, 5 máximo 10 caracteres, un barter de 10
se fijan bien.
Ahora supuestamente si acá en el 6 se decretó o abecé a BCD un 2, 3, cuatro cinco enter se fijan acá
está duplicado.
Obviamente todavía no da error porque no hemos aplicado, pero si colocamos apply acá se fijan Abbe
y los dos tienen el mismo se cabu.
Recuerden que desecado es único, debería dar un error.
Claro, se fijan acá hasta el error.
Por la llave dupliqué intri que está duplicada la entrada.
Para el campo, que es único, se fijan.
Bueno, eso es lo que creo simular después, pero en el código yaba.
Entonces acá vamos a colocar cualquier otro.
Un, dos, tres, cuatro, cinco, seis.
Ahora si.
Pero recuerden el máximo de caracteres, entonces tenemos un, dos, tres, cuatro y tenemos seis,
tenemos 10.
Y acá tenemos nueve.
Así que está bien, aplicamos finalizar.
Se fijan?
Ahí lo actualizo.
Bueno, eso sería como manejo transaccion.
Va a ser el rollback.
Por lo tanto, no se va a aplicar el cambio anterior o lo que hayamos creado o lo que sea.
Siguiente paso.
Problemas acá en nuestro intelige.
Vamos a cerrar.
La idea es clonar, pero antes cerrar.
Es claro si lo vamos a cerrar los projekt.
Nos vamos a ir de acá.
Creo que ya va JDBC.
Acá el singleton, de hecho lo pudimos realizar.
Siempre con control TAF.
Podemos navegar.
Nos vamos a la conexión, a la auto conexión base auto.
Claro, acá tenemos el singleton.
Y ojo, acá no estamos implementando conexiones.
No acá simplemente con el tren de Manage, con el Connection.
Después, como digo, lo vamos a ver con el pull de conexiones.
Entonces lo vamos a clonar para no modificar este por acá copiamos.
Ya va.
JS Acá.
Control C o clic derecho Coppi Control CS fijan un clic abajo.
Pegamos.
Y los renombrados Yeva J de S Singleton vamos a poner un poco más claro.
Guión bajo y te raikes de transacciones de Reiki y de manejo de transacciones.
Perfecto.
Ok.
Se guardan, lo copia perfecto.
Vamos a cerrar los Projekt y ahora Open vamos a abrir uno nuevo.
Buscamos acá el nuevo que copiamos o clonamos ya.
JDBC Singleton The Raikes Perfecto.
Bien, ahí lo tenemos.
Quiero revisar los рамках que haya quedado todo bien.
Por ejemplo, abrimos una clase, se fijan acá muestra algunos errores, no reconoce la clase, los
РАМКАХ.
Bueno, no se preocupen.
En ese caso, a veces el IDE no detecta bien esto y tenemos que reiniciar el día.
Entonces simplemente lo cerramos y lo volvemos a abrir.
Te dije que lo haría perfecto ahora sin ningún problema.
Ya estamos ya bajo ese Singleton T-Rex.
Ahora muitas este error.
Claro, simplemente como siempre, editar configuraciones y vamos a quitar todas con el signo menos
tenemos esta está ok.
Lo jamos limpio ok, ya lo tenemos.
Entonces ahora, a partir de este ejemplo, vamos a trabajar sobre transacciones.
Lo primero bueno modificar.
De hecho con control TAB por acá tenemos producto.
Se fijan.
Creamos un modo atributo del tipo privat.
Un string.
Ese cabo.
Qué faltaría.
Bueno, lo que setter para poder pasar los datos y también para poder obtenerlo.
Bien, para eso no podríamos ir al final.
Entonces nos vamos.
Vamos a fajando por los métodos y como por acá en el set categoría claro, por acá con alt insert mietras
set fijan ese cabu.
Ok, ok.
Bueno, también lo podemos mostrar acá en el string, pero no sé si sea necesario para este ejemplo.
Ahora tenemos que ver en cuál de los main, por ejemplo.
Ejemplo JS En el Lilit o en el arte?
Cuál de tú utilizamos para nuestro ejemplo con transacciones?
No sé, podríamos tener una mezcla entre el ejemplo JS con el APTE, porque recuerden que acá estamos
creando, se fijan.
Creamos un nuevo producto y acá estamos utilizando.
Entonces podríamos crear una nueva clase por acá con el método Main Raikes.
Entonces vamos a copiar hasta ejemplos.
JS La copiamos para no modificarla.
Seleccionamos, copiamos Control C y la pegamos acá.
Entonces t r x ok.
Listo, vamos a abrir.
Ejemplo JS AT.
Lo tenemos.
Vamos a copiar este editar producto.
Entonces vamos a subir y seleccionamos.
Control C Volvemos con Tab T Reckless y lo pegamos por acá.
Acá abajo.
Un poco separado, vamos a modificar un poco acá.
Guarda como tenemos el quitar un poco más abajo se fijan.
Acá tenemos el listar para ver los cambios.
Lo podríamos tener una sola vez.
Entonces este de acá simplemente lo quitamos.
Entonces esperamos por so%re y lo quitamos.
Acá ya tenemos definido producto.
Simplemente podemos utilizar esta misma variable.
Quitamos esto.
Y lo mismo categoría.
Mi teclado Reiser mecánico, insertarnos pro-ducto, pero vamos a aceptar uno nuevo que sea distinto
y vamos a editar este mismo de acá, pero en vez de teclado Corsair.
Bueno, esto mismo, pero en vez de 700 pre-cios 700 le podemos colocar 1000 para que sea distinto,
nada más.
Y lo demás tal cual.
Entonces la idea con insertemos no producto da lo mismo el producto de hecho teclado y BM y b m mecánico
precio 1550.
Misma categorías, acá me interesa solamente ver.
Producto punto set s kago.
Recuerdan que te duplicaba habían colocado a B C B a BCD 1 2 3 4 5, puede ser 1 8 4 5 o 1 3 4 5 C porque
los dos existen en la tabla.
Pero vamos a dar vuelta el inser con el late lidié.
Primero actualizar, editar uno que no tenga errores se fijan en la autorizamos sin errores el teclado
Corsair y con insertemos con el error edite bien, pero al insertar lánzale escepción hacer el rollback
y que el producto no se edite lo mismo.
También podría ser al revés, es decir, crear un producto sin ningún error.
Por ejemplo, a BCD e se fijan ese no existe.
Por lo tanto no laserie ningún error y lo insertará bien.
Pero el actualizar a utilizaríamos con uno que cita enlace авто.
Entonces, ÂQuÃ producto .0 se khun?
A BCD un, dos, tres, cuatro, cinco seis.
Por qué?
Revisemos la tabla, se fijan, creo modificar el 5.
Claro, Cortes y que Corsair es a veces de 1, 3, 4, 5.
Pero ahora lo quiero cambiar hasta acá.
Un, dos, tres, cuatro, cinco, seis.
Perdón, a veces de uno, dos, tres, cuatro, cinco, seis.
Entonces, cómo existe con el 26?
Ya existe.
Es ese cabo debería lanzar la excepción de que ya está repetida, que ya existe ese cabo.
Por lo tanto, no se puede duplicar de fican.
Entonces, por eso a veces de un, dos, tres, cuatro, cinco, seis.
Esa es la idea.
Pero bien, para que esto tenga efecto, también tendremos que modificar los repositorio.
Claro, porque acá solamente estamos pasando ese cabo.
Pero si revisamos control TAF y nos vamos a productos repositorio implemento.
En el Added, en el INSER, en ninguna parte estamos pasándoles a cabo de un punto importante a tener
en cuenta.
Entonces por acá lo tengo que pasar, lo voy a pasar como índice 4 1, 2, 3, 4 acá y este sería el
5.
Entonces esto lo modifica.
Modificamos tiro al 5.
Lo dejamos en 5.
Acá, ese día, ese Khun puede ser después de categoría, recuerden categoría y di acá coma ese cabo
igual pregunta y llega también.
Ese cabu koma fecha registro, pero siempre les acabo.
En ambos caso después del category.
Y es que faltaría un si no preguntaba porque estaba hurgando un campo, coma pregunta.
Faltaría otra cosa, por acá bajamos.
STM Tª punto.
De qué tipo es shed string, set string?
Cuatro coma.
Pun to get ese cabo.
Estamos pasando valor para la plantilla, ya sea para ladel o paralicen y lo tenemos.
Qué más podríamos modificar?
Crear producto para mostrarlo en el DISTAR y también en el Porahí, pero tampoco lo tenemos en el Tustin,
así que daría lo mismo, pero igual coloqué moslo.
Entonces bajamos a este método por acá.
P Punto.
Set?
S cabo el Rasul Set punto get string.
Ese cabo Fileto ahí lo tenemos.
Bueno, y para mostrarlo igual en producto acá por sobre control B.
Nos vamos al inquieto al final.
Perdón al toString por acá lo podríamos agregar por acá.
Entonces.
Leshe cabo.
Y listo.
A Faltón más acá, más Elsy lo tenemos.
Ahora sí que sí, ya tenemos todo cambio de lista.
Acabó con un nuevo proyecto clonado.
Entonces ahora podremos implementar transacciones.
Bien, pero este video está quedando un poco largo.
De hecho ya quedó largo, así que todo lo que transeccional lo dejamos para la siguiente clase.
Nada más.
Nos vemos.