JDBC

1. Vamos a realizar un programa que acceda a nuestra base de datos de usuarios. Vamos a acceder de dos formas: mediante ODBC y mediante MySQL. La plantilla del fichero que obtiene el listado de usuarios se encuentra en el fichero Ej1.java. Se pide:

a) Acceder al fichero de datos de usuarios mediante ODBC y mostrar el listado de usuarios desde Java. Para ello previamente deberemos instalar una fuente de datos ODBC que tome estos datos de nuestro fichero de texto. Deberemos seguir los siguientes pasos:

Una vez tenemos nuestra fuente de datos podremos conectarnos a ella desde JDBC.  Compilar y probar que consiga establecer correctamente la conexión con la fuente de datos sin producirse ninguna excepción.

b) Ahora haremos que nuestro programa obtenga de la base de datos los datos de los usuarios y los muestre por pantalla. Para ello deberemos escribir el código de la función listaUsuarios(). Deberemos crear un objeto Statement sobre el que ejecutaremos nuestra consulta SQL (query), y recorreremos el objeto ResultSet que nos devuelva mostrando el login y password de todos los usuarios.

c) Para finalizar, vamos a cambiar el acceso a una base de datos MySQL. Para ello instalaremos MySQL y crearemos una nueva base de datos llamada paj. Tendrá una tabla USUARIOS con dos columnas login y password de tipo varchar. Para instalar y poner en marcha la base de datos MySQL deberemos:

Ahora tendremos que modificar nuestro programa para acceder a esta base de datos. ¿Qué driver tendremos que utilizar ahora? ¿Cuál será la url de la base de datos? Añadir el driver MySQL al CLASSPATH con:

SET CLASSPATH=%CLASSPATH%;<dir. ejercicios sesion 8>\mm.mysql-2.0.4-bin.jar

Modificar el driver y la url en el programa, compilar y probar, comprobando que accede correctamente a la base de datos que hemos creado.

2. (CHAT) Vamos a seguir ampliando nuestra aplicación de chat. Ahora haremos que tome los datos de los usuarios de la BD MySQL que hemos creado. Para ello tenemos la clase AccesoBDUsuarios en el paquete usuarios, de la cual podemos encontrar una plantilla en usuarios\AccesoBDUsuarios.java. En el fichero Ej2.java tenemos un conductor para probar el módulo de acceso a la BD. Se pide:

a) Insertar el driver y la url de la base de datos en el constructor de la clase AccesoBDUsuarios. Compilar y probar que se conecta y que valida los usuarios correctamente (el registro de usuarios todavía no está implementado).

b) Vuelve a abrir el código de la clase y mira la función valida(login,password). ¿Qué hace esta función? Explica qué hace para comprobar si ha encontrado el login y el password en la base de datos.

c) Por último realizaremos el registro de usuarios, para lo cual la función registro(login,password) deberá hacer una inserción en la BD después de comprobar que el login es válido. La cadena insert contiene la sentencia SQL de la inserción que deberemos ejecutar. Añade la instrucción necesaria para ejecutar esta sentencia. Compilar y probar que registra usuarios correctamente.

d) Como último paso nos queda integrar nuestro módulo de acceso a la BD en el chat. Integrar y hacer los cambios necesarios en el chat para que se utilice como módulo de acceso a los usuarios la clase AccesoBDUsuarios en lugar de AccesoFicheroUsuarios. (NOTA: Sólo es necesario cambiar una línea de código en la clase ServidorChat para adaptarlo). ¿Qué cambios hemos tenido que hacer? ¿Cuál es la ventaja de haber definido la interfaz AccesoUsuarios para los módulos de acceso a los datos de los usuarios? Hacer el cambio necesario y probar que el chat funciona correctamente.