Introducción a JDBC - Base de datos con Java Objetivos: Reconocer los objetos para trabajar con bases de datos. Desarrollar aplicaciones que trabajen con bases de datos. Temas: Java Database Connectivity (JDBC). Uso de drivers de terceros. Mantenimientos y consultas. Desarrollo de componentes (JDBTable y JDBComboBox) Cursores y Procedimientos Almacenados. Por Jonathan A. Jurado Sandoval Página 1
Java Database Connectivity (JDBC) La conectividad de la base de datos de Java (JDBC, Java Database Connectivity) es un marco de programación para los desarrolladores de Java que escriben los programas que tienen acceso a la información guardada en bases de datos. JDBC se utiliza comúnmente para conectar un programa del usuario con una base de datos por detrás de la escena, sin importar qué software de administración o manejo de base de datos se utilice para controlarlo. Existen 4 formas de usar JDBC para conexión con base de datos: El puente JDBC-ODBC Driver de Java parcialmente nativo Driver JDBC de Java puro Driver de protocolo de Java puro El puente JDBC-ODBC Se usará inicialmente para comunicarnos con el gestor SQL Server. Para esto necesitamos del ODBC (Open Database Connectivity) de Microsoft, a través del cual crearemos un DSN (Data Source Name) que nos permitirá crear una cadena de conexión de información sobre la base de datos. Driver de Java parcialmente nativo Esta forma está integrada de controladores que se comunican con el servidor de base de datos en el protocolo nativo del servidor. Por ejemplo para el gestor DB2 necesitaríamos un driver nativo de DB2 de IBM, Para Informix necesitaría-mos un driver nativo de Informix de Unix. Nuestro JDBC, hecho en Java se comunicaría con estos drivers. Driver JDBC-Net de Java puro En esta forma los drivers están hechos en Java puro, pero sin embargo utilizan protocolos estándares, como por ejemplo HTTP, con servidor de base de datos. El servidor traduce el protocolo de red. Para el caso de Windows, puede usar ODBC. Driver de protocolo de Java puro En esta última forma, conformada por drivers de java puro, la comunicación es a través de un protocolo específico para la marca de base de datos que se usa. Más adelante, mostraremos como usar un driver de este tipo. Para desarrollar nuestras primeras aplicaciones nosotros usaremos la primera forma de conexión a base de datos con el puente JDBC-ODBC, por ser la más sencilla. Siempre debemos considerar la siguiente figura en el desarrollo completo de nuestra aplicación: Por Jonathan A. Jurado Sandoval Página 2
Lo primero que tenemos considerar es el tener nuestra base de datos en SQL Server (Pubs). Luego construir el DSN (Data Source Name) mediante ODBC. Considerar que los objetos para acceder a base de datos se encuentran en la API JDBC, por lo tanto una línea obligatoria en nuestro programa en Java es: impor java.sql.*; // acceso a Connection, Statement y ResulSet Finalmente podemos centrarnos en desarrollar el código Java que complete nuestra aplicación. Creación de un Data Source Name (DSN) con ODBC ODBC es un administrador de drivers, sus siglas quieren decir Open Database Connectivity y significa Conectividad Abierta de Base de Datos. Es un producto de Microsoft que se instala cuando se instala el sistema operativo Windows y crece conforme se instalan nuevos gestores de base de datos o software que registran sus driver en él. El ODBC permite el acceso a estos drivers con una interfaz visual de diálogos, que va construyendo una cadena de conexión que puede ser usada por nuestras aplicaciones para comunicarnos con una base de datos. La base de datos se comunica con ODBC, y ODBC lo hace con JDBC, y JDBC con nuestra aplicación final. Con ODBC crearemos un DSN (Data Source Name), cadena de información para la comunicación. Para hacerlo seguimos los siguientes pasos: 1. Abrir al Panel de Control 2. Con doble clic activar Fuente de Datos ODBC 3. Verá el siguiente cuadro de diálogo: Por Jonathan A. Jurado Sandoval Página 3
4. Dar clic en botón Agregar para adicionar un nuevo DSN. Escoger el controlador de SQL Server: 5. Según el controlador seleccionado verá diferentes diálogos para ingresar información sobre la base de datos que se desea usar. Un dato común a ingresar será el nombre del origen de datos o el DSN. En el caso de haber seleccionado un controlador para SQL Server veremos un diálogo, donde debemos ingresar el DSN (Name) y también el nombre del servidor (Server) y luego clic en el botón Next, como muestra la siguiente figura: Por Jonathan A. Jurado Sandoval Página 4
6. Al ver el siguiente diálogo deberá escoger el tipo de autentificación para conectarse a su base de datos. Esta puede ser con el login y password del sistema operativo o con el login y password del SQL Server, dependiendo de la instalación de su SQL Server. 7. A continuación en el siguiente diálogo deberá escoger la base de datos (pubs viene de ejemplo con el SQL) y luego clic en el botón Next: Por Jonathan A. Jurado Sandoval Página 5
8. Se recomienda no seleccionar ninguna opción en el siguiente diálogo y dar clic en el botón Finish: 9. Finalmente verá el siguiente diálogo en el que recomendamos dar clic en el botón Test Data Source: Por Jonathan A. Jurado Sandoval Página 6
10. Si todo está correcto verá este mensaje 11. Se recomienda entonces cerrar los diálogos abiertos del ODBC dando clic en el botón OK Por Jonathan A. Jurado Sandoval Página 7
Ejercicio N. 13 El código de dicho componente es: Debemos desarrollar un componente que se encargue de las conexiones a las base de datos, y este componente debe estar en el paquete com.me.sql en la biblioteca MiLib. Este componente, será una clase de Java, de nombre ConectaDB, y permitirá la conexión a diversas bases de datos según sea el caso. Está será la vista final en MiLib, después de crear y compilar la clase ConectaDB Este componente será usado en nuestras aplicaciones para conectarnos a las base de datos de diversos gestores, con ligeras modificaciones en su contenido. Recordar que si quisiéramos usarlo en otra aplicación habría que añadir MiLib al nodo Library de la aplicación donde lo queremos usar. Por Jonathan A. Jurado Sandoval Página 8
Probando ConectaDB Mediante el siguiente ejercicio apreciaremos como utilizar ConectaDB. Para eso, crear un proyecto y agregar a él un JFrame con la siguiente forma: Debe agregar al nodo Library del proyecto la biblioteca MiLib, y luego digitar el siguiente código en el actionperformed del botón: El ejecutar la aplicación debe salir: Por Jonathan A. Jurado Sandoval Página 9