Ejercicio Java. Trabajando con una Base de datos(Solución)

ErrorSQL

Se trata de una clase muy sencilla, ya que solo queremos personalizar el error, de forma que bastara con:

 

Conexión

Se trata de organizar un poco lo que vimos anteriormente

La parte visible se compone de todas las constantes necesarias, el constructor y los dos métodos

En getConexion, comprueba se ya existe la conexión, para devolverla sin más, y si no existe, entonces llama al método abrir conexión, y se guarda la conexión abierta, antes de devolverla; asi la siguiente vez, ya la tendrá abierta y la devolverá directamente

En método closeConexion se asegura que exista el objeto conexión, y que este abierto, si es así, la cierra, y a continuación, deja a null la variable para que el método getConexion funcione correctamente si lo llaman.

Por último, el método abrirConexion es muy semejante al escrito anteriormente, pero interceptando los errores, para devolverlo como ErrorSQL

ProcesarClientes

Esta es la clase de arranque, empezamos definiendo los literales y las variables que vamos a necesitar

Preparamos ordenes SQL para leer la tabla de Clientes, para leer un registro de Provincia y para grabar un registro de Provincia. Estos dos últimos con “?” para poder sustituir luego

A continuación cargamos variables y hacemos el preproceso

Abrimos Scanner sobre la consola para poder pedir datos (28), solicitamos una conexión (34), cargamos los PreparedStatement para leer provincias e insertarlas (35,36) y realizamos el SELECT sobre clientes consiguiendo el ResultSet (39,41)

Siguiente paso. Bucle de lectura/proceso

Toda la lectura la hacemos dentro del bucle while que esta entre 50 y 66, y para cada registro, extraemos el id_provincia (51, el nombre(52) y la población(53) para facilitarlo como información, al pedir la provincia. La línea 64, solo sirve para comprobar que todo funciona.

En la line 55 utilizamos el método verProvincia al que le pasamos el id_provincia y devolverá true si existe, y false si no existe

Si la prueba devuelve false, llamamos al método actualizarProvincia que pide los datos por teclado y realiza un insert en la BBDD

El párrafo que va de la 60 a la 66 utiliza la cláusula finally para cerrar la conexión a la BBDD

A continuación el método verProvincia

Le añade el id_provincia al PreparedStatement que ya tenía (77) y lanza la query; si lo encuentra, la pregunta isBeforeFirst le dará true, por lo que modificara el boleano y lo retornara

Por ultimo para realizar la actualización, tenemos este método

En las líneas  98 a 102, realiza el dialogo para la petición de información

En las líneas  105 a 107 prepara la orden de Insert y en la 108 hacemos el Insert.

Notas:

En las líneas  81 y 109 no podemos cerrar el PreparedStatement, a menos que queramos repetir la orden de las líneas  35 y 36

No vamos cerrando los objetos de forma explícita, porque cuando cerramos la base de datos, automáticamente se cierran todos los objetos que cuelgan de esa conexión.

Acerca de Miguel Garcia

Programador, Desarrollador web, Formador en distintas areas de informatica y director de equipos multidisciplinares.
Esta entrada fue publicada en Sin categoría. Guarda el enlace permanente.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.