Metadatos y sentencias preparadas
En el primer ejercicio de esta sesión vamos a realizar una clase que
nos permita copiar la estructura de tablas y los datos de un SGBD a otro (en
nuestro caso, de MySQL a PostGres). Para ello vamos a seguir los siguientes
pasos:
- Cread una nueva clase de conexión que nos permita conectarnos con
PostGres. Podéis basaros en la realizada en la anterior sesión,
modificando los datos de conexión.
- Cread una clase que copie la estructura de tablas desde MySQL a PostGres.
La BD ya está creada en PostGres con el nombre Viajes. La clase a desarrollar
contendrá un método crear que obtendrá los metadatos
de MySQL y ejecutará un comando CREATE TABLE para cada tabla.
- Una vez creadas todas las tablas procedemos a copiar los datos. Para ello,
creamos un nuevo método dentro de la anterior clase que realizará
una consulta a la BD en MySQL e insertará dichos datos a la correspondiente
en PostGres. Para simplificar os fijáis en los tipos de los campos.
En este método lo correcto sería utilizar el método executeBatch
con el correspondiente addBatch, tal como hemos visto en teoría.
Sin embargo, el driver de PostGres no tiene implementados estos métodos.
Realizad un executeUpdate por cada INSERT.
- Una vez copiados comprobad si la clase desarrollada en la sesión
anterior funciona con PostGres. Simplemente cambiad la clase de conexión
a la nueva creada para PostGres, compiláis y ejecutáis.
En el siguiente ejercicio se trata de hacer uso de las sentencias preparadas.
Utilizad el ejercicio desarrollado en la sesión anterior. Modificad el
método MuestraTray para que trabaje con sentencias preparadas.
En este método se realizan dos consultas. La segunda consulta se repite
muchas veces cambiando sólo los datos de la consulta. Este tipo de consulta
son las ideales para hacerlas preparadas. Cread la sentencia preparada en el
constructor de la clase y asignar los parámetros tal como hemos visto
en teoría.