En la clase anterior me comí la C en conexión, entonces tecleamos a agregar conexión y también acá
con Echo.
Bien, ahora vamos a implementar el por Heidy acá.
Lo primero, devolver un tipo producto acá no es una lista, sino vamos a buscar por ahí, di con un
huer y debería encontrar un registro.
Bueno, en realidad podría ser ninguno.
En caso de que Leydi no existan las Ayato o no existe ningún registro con ese Heidy, pero si lo encuentra
un solo registro, un solo producto, entonces lo vamos a definir acá.
La variable producto.
Lo dejamos en Nul por defecto viene y acá con un try la sentencia utilizando el Connection, pero en
realidad no es una sentencia, un Steinmetz, sino un prepar stema, una sentencia preparada.
Por qué hacer con un huer y un parámetro con el Heidy?
Bien, entonces prepar statements.
Igual Geet conexión punto prepar Stedman y acá la consulta un string, un selecto asterisco from la
tabla, pero antes continue, vamos a bajar una línea entonces por acá.
Bajamos y además vamos a cerrar la pestaña Proyecto para que quede en pantalla completa, entonces con
Alt 1, luego repetimos al 1 y quitamos la pestaña o la ocultamos.
Continuamos from pro-ductos la tabla y con el where el Heidy.
Igual algún parámetro pregunta y está molesto.
Cerramos la sentencia Troi con las llaves tenemos que manejar el track catch.
Entonces en el error en el que con lechon nos posicionamos sobre y con alt enter agregamos el cacho.
Vamos a modificar acá el label por el E.
Entonces simplemente lo seleccionamos, lo quitamos e.
Y lo mismo acá.
Ahí tenemos la sentencia.
Entonces ahora tenemos que pasar el parámetro de Leidy.
Se lo tengo que asignar con el método Set del statement.
Es decir, del Steinmetz Pepper.
Punto set lonko.
Claro, tiene que ser del tipo Long.
Porque el parámetro de Leydi es del tipo lonko.
El índice uno coma el valor Heidy.
Ahí lo pasamos.
Lo segundo es el result set.
El siguiente paso sería ejecutar la consulta.
La sentencia preparada.
Ya pasamos el parámetro.
Ya tenemos la consulta con la plantilla.
La ejecutamos.
Iba a devolver un cursor.
El result set.
RC Igual.
Punto.
Ezequiel Querí ejecutamos la consulta.
Ven acá, devuelve un solo producto, es decir, uno o ninguno.
Entonces, en vez de utilizar un Weill, vamos a utilizar un IFF y movemos el cursor RC.
Punto.
Next Lleca Creamos el objeto producto con los datos del resources, que es justamente lo que tenemos
un poco más arriba.
Al otro método al dictar por acá es justamente esto mismo.
Exactamente esto.
Entonces, bueno, hay dos alternativas lo podríamos copiar y pegar, pero estaríamos duplicando código
y probablemente el día mañana puede que cambie el nombre de alguna columna.
Por ejemplo, puede que cambie el precio por otro nombre o el nombre del producto.
Se fijan y tendríamos que estar modificando el nombre del campo de esta columna en más de un lugar.
Entonces mucho mejor.
En vez de copiar y pegar, podríamos crear un método y reutilizar este código que se encarga de mapear
un result set un registro del asalto a un objeto producto.
Entonces lo que estamos haciendo es creando el producto.
Este objeto estamos poblando, estamos hidratando sus valores, sus atributos con los valores de la
consulta.
Entonces vamos a seleccionar todo esto y con clic derecho utilizando el IDE.
Inteligir acá tiene una característica es bien potente que nos permite extraer un método extract método
con el atajo control alt m con el Chord cat.
A mí no me funciona el Chord cat, pero lo pueden probar si le funciona perfecto, sino con clic derecho
rfactor el método hacen un clic y automáticamente se crea un método un poco más abajo que get producto.
De hecho lo podríamos renombrar acá, entonces simplemente quitamos el get y le ponemos crear producto
o el nombre que queramos crear producto y entes y listo.
Ahí tenemos el método reutilizable un poco más abajo.
De hecho vamos a quitar un código que puso además acá, acá agregó una anotación no null, eso lo vamos
a quitar porque en realidad no sirve para nada, es solamente para efecto del intelige.
Quitamos esa línea, la eliminamos bien y también vamos a seleccionar todo este código.
Este método los seleccionados completo y lo vamos a mover hacia abajo.
Nos movemos por acá a ver.
Ahí está bien.
Al final de la clase de un método privado que de hecho lo vamos a utilizar también acá en el método
por allí.
Entonces sería producto.
Igual crea el producto.
Y pregunto pasamos el result set perfecto.
Bien, recemos t método con control B.
Nos vamos a la definición del método del producto y si se fijan se crea con el privat, un método solamente
que utilizamos dentro de la clase y además pasa el result set por argumento.
El método entonces forma inteligente crea el método conectÃ estructura.
El resulted crea el objeto y utiliza el cursor para pasar los datos al objeto producto vía set.
Entonces ahí lo estamos reutilizando acá en el por Heidy y también acá en el Dictas queda mucho mejor.
Ahora qué faltaría?
Bueno, faltaría en vez de devolver el null producto perfecto, ahí lo tenemos.
En nuestro código estamos cerrando de forma automática con el auto Clov solamente la sentencia, el
statement acá.
Por eso acá tenemos los paréntesis, acá el primer statement.
Creamos el objeto con la plantilla, luego con las llaves y en el cuerpo pasamos el parámetro del tipo
lock y el set.
Pero el result set nos lo estamos cerrando.
Por qué?
Por qué no lo podemos colocar dentro de Troi con recursos?
Porque por ejemplo, si lo movemos para que se auto cierre, lo quiero mover acá entremedio voy a cortar.
Por acá y coma por acá, dentro de tu paréntesis en el Tri no podemos colocar cualquier tipo Keigo ni
tampoco pasa el parámetro con el set se fijan, solamente podemos definir objetos del tipo recurso,
es decir, que por detrás implementen el auto, que los recursos que se puedan cerrar de forma automática,
entonces siempre trae entre los paréntesis solamente definimos recursos.
Por lo tanto, pasar parámetros con el statement, con el set log no es parte o no está dentro del contexto
del trade con recurso.
Entonces por eso acá lo tenemos que asignar fuera de este true de los paréntesis.
Fuera.
Acá abajo.
Al final lo tengo que dejar de esta forma y solamente auto cerrar la sentencia.
Entonces, como solución podríamos cerrar el RC por acá.
Punto Close y listo.
Le enviamos otro tema con control TAB.
Nos vamos a ir a la clase pro-ducto acá con Alt Insert.
Vamos a crear el método toString por acá.
Vamos a crear con todos los datos, OK?
Y lo vamos a modificar.
Entonces vamos a quitar esta línea.
Está acá.
La vamos a seleccionar.
Vamos a quitar esto también vamos a quitar esto.
Dejamos el Heidy acá, bajamos acá, vamos a dejar solamente un separador nada más con el nombre y acá
podríamos dejar otro separador.
Bajamos esto acá, le quitamos.
Un separador.
Y otro quitamos.
Bajamos.
Y bajamos.
Entonces le di nombre, precio y la fecha registro con los separadores.
Ahora vamos a ir a la clase ejemplo con el método Main.
Ejemplo Jcsé y en vez de imprimir el producto con el que nombre, simplemente el producto y de hecho
lo podríamos abreviar, se acuerdan?
Vamos a colocar dos punto acá y esto lo quitamos con referencia a método y vamos a probar el por ahí.
De hecho Shout Repositorio Punto por Heidy.
Por allí, por ejemplo vamos a listar el 2 en registro 2 del tipo Lonco.
Entonces vamos a colocar 2 L.
Recuerden que recibe un log y ejecutamos con control cheff F10.
Levantamos.
Ya tenemos, se fijan Lyta primero la lista completa con el distar, acá la tenemos y después lista
el 2, el detalle solamente el 2.
Incluso si colocamos acá 1 y volvemos a levantar, va a listar bicicleta en el detalle.
Continuamos en la siguiente clase.