Ven, sigamos.
Vamos a ver el ejemplo mucho más completo ya incluyendo también categoría, es decir, un repositorio
de producto, pero también un repositorio de categoría.
Bueno, y la idea de manejar transacciones porque tenemos dotado las dos repositorio.
La idea de crear una categoría, pero además un producto.
Vamos a tener un mismo método, una transacción, hacemos un insert, una categoría, luego obtenemos
el Heidy de esa categoría insertada y lo asociamos al producto y luego creamos el producto con ese día.
Esa es la idea.
Pero bueno, acá hay varias cosas que están involucradas.
Primero, bueno, el pull de conexiones.
Por lo tanto, vamos a tomar el ejemplo que ya tenemos de pool.
Lo vamos a modificar.
Le teme que agregar todo lo que se les cabo?
Todo lo que vimos en las clases anteriores.
Pero además tengo que agregar una clase servis, manejar transacciones de una forma mucho más, desacoplar
la del controlador o de la clase con el método main y que ambos repositorio recuerden, tienen que compartir
la misma conexión a aceto para que estén dentro de la misma transacción.
Bien, comencemos a trabajar.
Vamos a cerrar primero este proyecto será proyecto.
Vamos a abrir otra de Sepul, pero solamente lo hemos adrid, no para modificar en ningún caso la idea
e replicarlo, clonarlo.
Lo vamos a copiar como siempre.
Hacemos un clic en Yeva J de Sepul control C lo copiamos, hacemos un clic por acá y control B lo pegamos.
Raquis ok.
Recuerden, a veces podría no reconocer bien la clase, los РАМКАХ.
En fin, ahí tendríamos que reiniciar el intelige.
De todas formas cerramos.
Lo vamos a abrir.
Acá tenemos públ de Raikes seleccionamos J sepulto $x OK.
Bien, íbamos a revisar entonces por acá.
Por ejemplo, con qué clase?
Yo solamente me quiero asegurar de que haya importado, de que se haya clonado bien.
Entonces, perfecto, se fijan, ya aparece una ruta acá.
Errores?
Bueno, es típico.
Si nos vamos a repositorio también, entonces la solución simple cerramos y volvemos a abrir.
Problema solucionado.
Bien, ahí tenemos entonces nuestro proyecto.
Ahora lo vamos a modificar.
Lo primero acá.
Editar configuraciones.
Vamos a quitar con el menos ok.
Vamos a dejar solamente ejemplo JDBC El delito.
Vamos a quitar.
Ok.
Lo eliminamos con suprimir el Activate.
También la idea crear un producto consecu tegoría, pero crear los dos.
Es decir, no una categoría exita, sino insertar una categoría.
Luego insertar ese producto, un producto con esa nueva categoría.
Todo dentro de una misma transacción.
Como explicaba al principio, tenemos que crear un repositorio para categoría.
En fin.
Y modificar.
Nos vamos a ir a produto repositorio.
Claro, porque lo cambio.
Lo hicimos en el proyecto que creamos anteriormente.
Entonces tenemos que volver a realizar esos cambios que son la base.
Se acuerdan?
Por ejemplo, modificar producto, repositorio, implemento, quitar los catch.
Se acuerdan?
Lo lanzamos vía método.
Además, tenga que agregar por acá en el insert, en el ataque, ese cabo.
En fin, un montón de cosas.
Partamos por esto en el guardar vamos a agregar el estacado.
Recuerden después de categoría Heidy por acá.
Perfecto.
Bajamos de acá también este cabu coma.
Después viene ficha registro y tenemos que agregar por acá un parámetro más.
Un signo.
Pregunta.
Bien, con esto estamos listo.
Faltaría por acá.
Bajamos.
Punto set string.
En el índice 4 producto get ese cabo.
Pero me falta de ese cabo.
Se fijan?
Entonces nos vamos a ir a pro-ducto también.
Antes continuar acá.
Por acá vamos a agregar por acá.
Bajamos al último Wyeth por acá.
Último set.
Creamos lo que transceptor al insert ese cabo ok y bajamos también al estric.
Entonces por acá un espacio más
y listo.
Volvemos al repositorio producto, continuamos acá con el quieto, acá silleta ese cabo, ahí pasamos
el valor.
Y recuerden inportante un poco más abajo.
Por acá.
Acá tenemos que modificar la cacería.
5 llega también.
5.
Entonces va en orden.
Un, dos, tres, cuatro.
Nombre, precio y categoría.
El 4.
Ese cabu.
Acá también en adelante.
Uno, dos, tres, cuatro.
Mantener el orden.
5.
Leydi en el ataque y en el insert en la fecha repecto.
Ejemplo JBS que lo tenemos acá.
Bueno, después de hagámosles a cabo.
Después tengo que modificar de ejemplo, pero lo dejamos para final.
Primero centrémonos en modificar el repositorio.
Volvemos.
Cuál será el siguiente paso?
Bueno, tenemos que quitar acá los catch.
Se acuerdan lo mismo que hicimos en el ejemplo anterior.
Entonces quitamos.
No se preocupen del error.
Después lo modificamos.
Acá también en el eliminar.
Listo.
Entonces, sobre el error por acá lo agregamos por el método colocamos ñez, porque actualize también
la interfaz.
Recuerden que es un método que escribimos, implementamos a partir de la interfaz repositorio.
Acá también más acciones.
Lo mismo.
Bien.
Y qué faltaría acá en producto, faltaría agregar el ese cabo, entonces.
Punto set.
Ese cabo resul ceto punto quiete stink de este cabo se fijan que mucho ordenado.
Si vamos revisando los métodos acá tenemos el eliminar muy simple, nos vamos a guardar también sin
tanto trae Nikhat bueno el trae sí, pero sin tanto catch eso lo manejamos después en el servis con
el manejo transaccion, con el rollback, todo eso y acá lo dejamos lo más limpio posible si se fijan
bien.
Otro cambio que tenemos que hacer.
Bueno, cuando creamos un nuevo registro, por ejemplo, quiero guardar una nueva categoría a un nuevo
producto y ya que tenemos un insert de categoría, un insert de producto, pero cuando queremos la categoría
de que está asociada con el Heidy en producto, tenemos que obtener el último Heidy insertado, creado
y eso lo tengo que hacer en el guardar, pero solamente paralicen no late porque obviamente Laddie modifica
un producto que existe, ya tiene su Heidy, pero el insert no tiene SAIDI, entonces tenemos que devolver
el Leydi de ese registro que se creó y pero eso tengo que modificar la interfaz acá el método guardar
porque está devolviendo un pait debería devolver.
Bueno, podría ser el objeto producto que contenga Leidy o bien derechamente devolver el Heidy un entero
que contenga Leydi de otra forma mejor devolver el producto completo, el objeto producto que se creó
o que se actualizó con toda su información.
Entonces podríamos hacer un cambio, no podríamos ir al repositorio, a la interfaz, entonces lo buscamos
acá repositorio vamos a modificar el guardar.
Entonces en vez de devolver un veit, un producto, pero recuerden, estamos utilizando el té genericos,
un producto o una categoría o lo que sea.
Ahora, bueno, acá me marca un warning que nunca se ha utilizado y por supuesto que va a marcar error.
Acá se fijan porque no voy si no es en este caso el producto por el genérico, por el generic producto
marca error acá porque no estamos devolviendo nada.
Ya está bien, lo vamos a revisar.
Por ahora vamos a devolver el mismo objeto, producto que estamos pasando.
Por acá retorné producto GijÃn.
Hay veces aparece el error.
Ahí hicimos el cambio.
Entonces, qué faltaría solamente asociar o asignar el Leydi del objeto producto, pero que se creó
del insert.
Cómo podemos ser de diferente forma, pero depender mucho del motor de acetato que estemos utilizando?
Hay una forma mucho más genérica y abstracta que sirve para la mayoría.
Por ejemplo, para mi SQL para pósteres SQL Server.
En fin, para la mayoría.
Otra tentativa es utilizar, por ejemplo SELECT un select especial que Camotes lo tiene Moise Cuele
Select Last Insert Heidy separado todo con un bajo y es una función.
Se fijan y devuelve y Leidy un entero con el valor de Leydi que se registró, que se insertó.
Pero otra forma, como había explicado, es mediante el Rasul Ceto, es decir, crear un cursor y mediante
el cursor.
Después del ataque del Abbott obtenemos el último Heidy insertado.
Pero para eso tenemos que configurar una cosa acá en el Prestadme como segundo argumento.
Acá tenemos el Pre Testament se cuele.
Acá tendremos que pasar una constante que el statement ratón.
Acá tenemos ratón.
Llenare aquí.
Lo pasamos como segundo argumento en el pre préstenme.
Eso es lo primero.
Lo segundo.
Bueno, después del execute Apdayc por acá vamos a tener un IFF, pero muy importante preguntar solamente
para el INSER.
Cómo sabemos cuándo es tunantes hay inser?
Por el.
Si pro-ducto punto en que Leidy es igual anul perfecto.
Entonces le asignamos el último Heidy al producto del insert.
Entonces producto punto get heidy.
Si es igual anul un true con recurso porque lo vamos a cerrar result set rcc igual statement punto por
acá tenemos el método Get generate x guet acá tenemos guet generated kish de segundo de acá.
Entonces tenemos el resources to con el Heidy generado es una secuencia, por lo tanto vamos a mover
el cursor con un if rc puntó next.
Por lo tanto si tiene un Heidy generado incrementado.
Perfecto.
Se lo asignamos al producto producto.
Recuerde que le en nulo lo tenemos en el IF, entonces lo asignamos con el set producto punto set y
pasamos el aide RC punto nyet del tipo lonko 1 se fijan y con eso obtenemos el último Heidy generado.
Estamos listo.
Eso es todo.
Y ahí pasamos el producto ya con el Heidy con la relación y vamos a hacer lo mismo con categoría.
Va a ser muy importante obtener el edit de la categoría para que después lo pasemos.
Designemos al producto y establezcamos la relación.
Bueno, cuál sería el siguiente paso a crear el repositorio pero de categoría A, pero antes tenemos
que modificar otro.
Otra cosa, otro tema, claro, porque recuerden que para trabajar con transacciones se requiere una
única conexión, la misma.
Vamos a tener que quitar, desacoplar el connection connection de cada método del repositorio.
Entonces eso lo vamos a dejar hecho.
Ahora, antes finalizar.
Pero lo primero es crear un atributo.
Entonces voy a quitar este método de conexión.
Fíjense bien, lo voy a modificar hasta acá.
Guet, con los borro punto y coma.
Voy a quitar el con y el quet con con minúscula y lo dejamos privat GijÃn.
Ahora quitamos esto.
Por cada uno, en cada método, lo quitamos.
Acá también.
Entonces la conexión es siempre la misma para todos los métodos.
Para acá también.
Y también en eliminar.
Solamente faltaría crear un constructor para poder pasar acá la conexión.
Claro, porque la conexión sólo tengo que pasar de alguna forma mediante un método set o un constructor.
Eso lo pasamos en el servis.
Después vamos a ver.
Ahora dejamos creado el constructor.
Entonces un clic derecho a Generate o también recuerden con Alt Insert constructor con la conexión muy
importante.
Y ahora sí que si te import que nos estamos utilizando como kitar y continuamos la siguiente clase con
el repositorio de categoría.
Nos vemos.