PROGRAMACIÓN III 1 Manejo de Bases de Datos 1. Conexión a Bases de Datos usando JDBC El paquete JDBC La librería de clases para la conectividad a bases de datos de Java (JDBC – Java Data Base Connectivity) provee una forma estándar para establecer y mantener una conexión de un programa en Java a una base de datos. La librería JDBC fue diseñada como una interface para ejecutar sentencias SQL, y no como una capa de abstracción de alto nivel para acceso de datos. Así que, a pesar de que no fue diseñado para mapear automáticamente clases Java a filas en una base de datos, permite que grandes aplicaciones sean escritas para la interface JDBC sin preocuparse mucho sobre cuál base de datos será desplegada con la aplicación. Una aplicación JDBC está bien aislada de las características particulares del sistema de bases de datos que está siendo usado, y por tanto no tiene que ser rediseñado para bases de datos específicas. Desde el punto de vista del usuario, la aplicación Java se mira de la siguiente manera: Aplicación JAVA JDBC Sybase Oracle MS-SQL MYSQL … JDBC administra esto al tener una implementación de la interface JDBC para cada base de datos específica (un controlador o driver). Relacionando JDBC a ODBC Uno de los principios fundamentales del diseño ODBC fue hacerlo práctico para construir controladores JDBC basados en otras APIs de bases de datos. Hay un mapeo muy cercano entre la arquitectura JDBC y API, con su contraparte ODBC, fundamentalmente porque todas son basadas en el mismo estándar. Debido a esto comparten algunos componentes conceptuales importantes: Administrador de Controladores (Driver Manager) Carga los controladores de bases de datos, y administra las conexiones entre la aplicación y el controlador. Controlador (Driver) Traduce las llamadas API en operaciones para un origen de datos específico. PROGRAMACIÓN III 2 Conexión (Connection) Una sesión entre una aplicación y una base de datos. Sentencia (Statement) Una sentencia SQL para ejecutar una consulta u operación de actualización. Metadata Información sobre los datos devueltos, la base de datos y el controlador. Juego de resultados (Result Set) Juego lógico de columnas y filas de datos devueltos al ejecutar una sentencia. Fundamentos de JDBC Un programa JDBC básico involucra los pasos siguientes: 1. Importar las clases necesarias. 2. Cargar el controlador JDBC. 3. Identificar el origen de datos. 4. Alojar un objeto Connection. 5. Alojar un objeto Statement. 6. Ejecutar una consulta usando el objeto Statement. 7. Recuperar datos del objeto devuelto ResultSet. 8. Cerrar el objeto ResultSet. 9. Cerrar el objeto Statement. 10. Cerrar el objeto Connection. La arquitectura JDBC está basada en una colección de interfaces y clases Java que juntas le permiten conectarse a fuentes de datos para crear y ejecutar sentencias SQL, y para recuperar y modificar datos en una base de datos. Estas operaciones se muestran en la figura siguiente: DriverManager (Administrador de Controladores) Crea una Connection (Conexión) Crea una Statement (Sentencia) Crea una ResultSet (Juego de Resultados) Establece un enlace a la base de datos Driver (Controlador) Base de Datos PROGRAMACIÓN III 3 Configurando una base de datos Antes de empezar a conocer la clase DriverManager, es importante configurar una base de datos de muestra y un controlador JDBC adecuado para que sea utilizado por el código a escribir. Construya una base de datos utilizando MS-SQL Server y nómbrela como rentaVideos. Construya una tabla llamada películas y defínale los campos siguientes: Columna Tipo de datos Tamaño Acepta Nulos Titulo Nvarchar 50 NO Precio Numeric 20, 2 NO Fecha nchar 10 NO En MS Windows, configure un controlador MS-SQL Server para usar la base de datos, haciendo lo siguiente: 1. Botón INICIO (Start). 2. Panel de Control (Control Panel). 3. Herramientas Administrativas (Administrative Tools). 4. Orígenes de Datos ODBC (ODBC Data Sources). 5. Pestaña DNS de Sistema (System DNS). 6. Botón Agregar (Add). 7. De la lista de controladores mostrada, seleccione la opción SQL Server. 8. Botón Finalizar (Done). 9. En la caja de texto Nombre, escriba RentaVideos. 10. En la caja de diálogo descripción, puede escribir alguna descripción apropiada. 11. En caja de diálogo Servidor, seleccione el nombre del servidor. Para este ejemplo, utilice (local). 12. Botón Siguiente (Next). 13. Configure la comprobación de ID de inicio según corresponda. 14. Marque la casilla de verificación Establecer la siguiente base de datos como predeterminada y seleccione la base de datos rentaVideos creada. 15. Botón Siguiente (Next). 16. Botón Finalizar (Done). 17. Botón Probar Origen de datos... 18. Botón Aceptar (OK). 19. Botón Aceptar (OK).