JDBC
JDBC
JDBC
Qu es JDBC?
Java Database Connectivity, ms conocida por sus siglas JDBC, es una API que permite la ejecucin de operaciones sobre bases de datos desde el lenguaje de programacin Java, independientemente del sistema operativo donde se ejecute o de la base de datos a la cual se accede, utilizando el dialecto SQL del modelo de base de datos que se utilice. El API JDBC se presenta como una coleccin de interfaces Java y mtodos de gestin de manejadores de conexin hacia cada modelo especfico de base de datos.
Driver JDBC
Los controladores (drivers) JDBC son adaptadores del ladocliente (se instalan en la mquina cliente, no en el servidor) para convertir las peticiones desde los programas Java a un protocolo que pueda entender DBMS. Existen controladores comerciales y libre para la mayora de las bases de datos relacionales y pueden ser de cuatro tipos:
Tipo Tipo 1 Tipo 2 Tipo 3 Tipo 4 Descripcin Controlador de puente JDBC-ODBC Controlador nativo de la API Controlador de protocolo de red Controlador nativo de protocolo
Paquete java.sql
JDBC ofrece clases muy tiles para trabajar con bases de datos.
Tipo Clase JDBC
Implementacin
Base de datos
Cerrar la conexin
El API JDBC
Inicio
Cargar Driver JDBC Class.forName() Conexin a BD Connection Crear Objeto que permita ejecutar sentencias SQL Ejecutar sentencia SQL
Callable Statement
Fin
Clase: Connection
Mtodo close() commit() createStatement() getCatalog() getMetaData() isClosed() isReadOnly() rollback() Descripcin Libera o cierra la conexin a la base de datos Ejecuta todos los cambios hechos en la base de datos actual Crea un objeto para enviar sentencias SQL a la base de datos Retorna el nombre del actual catalogo o base de datos Recupera un objeto con la metadata de la base de datos Retorna true si la conexin fue cerrada Retorna true si la conexin es de modo solo lectura Deja sin efectos los cambios hechos en la base de datos actual
setCatalog(strCatalog) Establece el nombre de la BD con la que se trabajar setReadOnly(valor) Establece la conexin en modo solo lectura
Clase: Statement
Mtodo executeQuery(sql) executeUpdate(sql) Descripcin
Ejecuta una sentencia SQL de tipo Select Ejecuta una sentencia SQL como Insert, Update o Delete. Tambin puede ser una sentencia DDL que no retorna nada
execute(sql)
Ejecuta cualquier tipo de sentencia SQL Retorna True si se trata de una consulta y Retorna False si se trata de un mantenimiento
Devuelve un ResultSet con los resultados de la consulta Establece el numero de segundos que el driver esperar para que un objeto Statement se ejecute Recpera el numero de segundos que el driver esperar para que un objeto Statement se ejecute Adiciona un comando SQL dado a la actual lista de comandos de este objeto Statement. Limpia el objeto Statement de la actual lista de comandos SQL.
Clase: ResultSet
Mtodo Descripcin
b)
2.
Establecer la conexin por medio del mtodo DriverManager.getConnection(strURL, strLogin, strPassword ) Este mtodo es static, por ello no necesitaremos instanciar un objeto de tipo DriverManager para hacer la llamada.
La sintaxis del parmetro strURL es: jdbc:controlador://[server][:port]/[database] [;property1=Value1; ]
Ejemplo de Conexin
Ejemplo de Conexin
Ejecutar Sentencias
Una vez que nos hemos conectado a la base de datos, las tareas usuales son de consultar datos o de agregar, modificar y/o eliminar datos.
Mostrar Resultados
Como hemos visto, las tareas usuales una de las tareas usuales son la de consultar datos, y estos debern presentarse adecuadamente.
Metadatos
DataBaseMetaData Para ver qu catlogos, esquemas, tablas, tipos de tablas, columnas de las tablas y dems de una base de datos, tenemos la clase DataBaseMetaData. Una vez establecida la conexin, podemos obtener la instancia correspondiente de dicha clase con el mtodo getDataBaseMetaData() de la Connection.
Metadatos
ResultSetMetaData Si no tenemos muy claro qu campos nos devuelve una consulta (quizs porque la consulta la ha escrito directamente el usuario desde una caja de texto), o queremos hacer algn trozo de cdigo general capaz, por ejemplo, de meter cualquier ResultSet en un JTable, nos puede resultar de utilidad la clase ResultSetMetaData.