Вы находитесь на странице: 1из 18

Programacin Java JDBC

Ing. Dennys G. Snchez Zavala dsanchez@ulasamericas.edu.pe

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

java.sql.Driver java.sql.DriverManager java.sql.DriverPropertyInfo


java.sql.Connection java.sql.Statement java.sql.PreparedStatement java.sql.CallableStatement java.sql.ResultSet java.sql.SQLException java.sql.SQLWarning java.sql. DataBaseMetaData java.sql. ResultSetMetaData

Conexin a Bases de Datos Sentencias SQL

Datos Errores Metadatos

Tareas Comunes a una BD


En una aplicacin de base de datos, lo primero que debemos hacer es conectarnos para efectuar operaciones sobre ella (agregar, modificar, eliminar o consultar), una vez realizadas dichas operaciones se recomienda cerrar la conexin para evitar algn problema.
Conectar a una base de datos

Consulta de datos especficos


Devolver datos Mantenimiento de Datos
Consultas y Mantenimiento de Datos

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

Statement Prepared Statement

Callable Statement

Fin

Procesar el conjunto de resultados ResultSet

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.

getResultSet() setQueryTimeout(tiempo) getQueryTimeout() addBatch(sql) clearBatch()

Clase: ResultSet
Mtodo Descripcin

Conexin a base de datos


Para conectarse a la BD, hay que realizar bsicamente dos pasos: 1. Registrar (cargar en memoria) el controlador. Esto se puede hacer de dos formas:
a) De forma dinmica, por medio del mtodo Class.forName(strDriver) (vase ejemplos) Esta es la forma ms usual y la que usaremos en los ejemplos. De manera esttica, usando System.setProperties("jdbc.drivers", strDriver)

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; ]

Conexin a base de datos


Ejemplos de carga dinmica:
En ODBC: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); En MySQL: Class.forName("com.mysql.jdbc.Driver"); En Oracle: Class.forName("oracle.jdbc.Driver.OracleDriver"); En SQL Server: Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

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.

Вам также может понравиться