Introd a JDBC51
-
Upload
anonymous-p0pjwz1 -
Category
Documents
-
view
220 -
download
5
description
Transcript of Introd a JDBC51
Introducción a la Introducción a la Tecnología JDBCTecnología JDBC
¿Qué aprenderemos durante esta ¿Qué aprenderemos durante esta semana?semana?
Conceptos Previos: Sistemas de Gestión de la Conceptos Previos: Sistemas de Gestión de la InformaciónInformación
Introducción a JDBCIntroducción a JDBC Definición de JDBCDefinición de JDBC Funciones de JDBCFunciones de JDBC Drivers JDBCDrivers JDBC Las Interfaces y clases del JDBCLas Interfaces y clases del JDBC
CONCEPTOS PREVIOS: CONCEPTOS PREVIOS: Sistemas de Gestión de la InformaciónSistemas de Gestión de la Información
Base de DatosBase de Datos Forma de almacenamiento de informaciónForma de almacenamiento de información Estructura y DatosEstructura y Datos Modelo RelacionalModelo Relacional
Gestor de Base de DatosGestor de Base de Datos Aplicación para manipular bases de datosAplicación para manipular bases de datos Oracle, Access, ...Oracle, Access, ...
SQL – SQL – Structured Query LanguageStructured Query Language Lenguaje estándar para crear, examinar y Lenguaje estándar para crear, examinar y
manipular bases de datos relacionalesmanipular bases de datos relacionales Permite manipular bases de datos en diferentes Permite manipular bases de datos en diferentes
sistemas que soporten el estándarsistemas que soporten el estándar
Modelo Relacional Modelo Relacional (Tablas)(Tablas)
Campo, Atributo, Columna
Registro, Fila
Modelo Relacional Modelo Relacional (Relaciones)(Relaciones)
Tabla
RelaciónRelación
Clave
Introducción a JDBCIntroducción a JDBC
JDBC también JDBC también proporciona proporciona una base común para la una base común para la construcción de construcción de herramientas y utilidadesherramientas y utilidades de de alto nivel.alto nivel.
Java Database Connectivity Java Database Connectivity (JDBC)(JDBC) es una interfase de acceso a bases de datos estándar SQL que proporciona un acceso uniforme a una gran variedad de bases de datos relacionales.
El paquete actual de JDK incluye JDBC y el puente JDBC-ODBC. El paquete actual de JDK incluye JDBC y el puente JDBC-ODBC. Estos paquetes son para su uso con JDK 1.0Estos paquetes son para su uso con JDK 1.0
Definición de JDBCDefinición de JDBC
JDBC es una API, JDBC es una API, formada por conjunto de formada por conjunto de clases e interfaces en el lenguaje de clases e interfaces en el lenguaje de programación Javaprogramación Java, para ejecutar , para ejecutar sentencias SQLsentencias SQL sobre una base de datos sobre una base de datos (externa)(externa)..
Ofrece un estándar de conexiónOfrece un estándar de conexión a cualquier a cualquier base de datos disponible en el mercado.base de datos disponible en el mercado.
Permite Permite obtener los datos en forma fácil y obtener los datos en forma fácil y cómoda en ambientes cliente-servidorcómoda en ambientes cliente-servidor a a través de Internet/Intranet.través de Internet/Intranet.
Funciones JDBCFunciones JDBC
Permite Permite establecerestablecer una conexión una conexión a a una base de datos.una base de datos.
Permite Permite enviarenviar sentencias SQL sentencias SQL.. Permite Permite procesarprocesar los resultados los resultados de de
estas sentencias.estas sentencias. Las clases que permiten esto están Las clases que permiten esto están
en el paquete java.sql (hay que en el paquete java.sql (hay que importarlo)importarlo)El API JDBC se divide en :
java.sql (Funcionalidad básica) J2SEjavax.sql (Funcionalidad avanzada) J2EE
Driver del JDBCDriver del JDBC Los Drivers también llamados Manejadores, Los Drivers también llamados Manejadores,
son un conjunto de clases que implementan son un conjunto de clases que implementan las clases e interfaces del API JDBC las clases e interfaces del API JDBC necesarias para que una aplicación Java necesarias para que una aplicación Java pueda conectarse con una BD. pueda conectarse con una BD.
Cuando los desarrolladores de una BD Cuando los desarrolladores de una BD desean que esta pueda ser accesible desean que esta pueda ser accesible mediante JDBC éstos deben construir un mediante JDBC éstos deben construir un driverdriver para esa base de datos; para esa base de datos; la misión del la misión del manejador será traducir comandos estándar manejador será traducir comandos estándar del API JDBC al protocolo nativo de esa del API JDBC al protocolo nativo de esa base de datos.base de datos.
Tipos de Drivers o Tipos de Drivers o ManejadoresManejadoresPuente JDBC-ODBC (tipo1)Puente JDBC-ODBC (tipo1)
Tipos de Drivers o Tipos de Drivers o ManejadoresManejadoresManejador de API nativo (tipo2)Manejador de API nativo (tipo2)
Tipos de Drivers o Tipos de Drivers o ManejadoresManejadoresManejador de JDBC-Net (tipo3)Manejador de JDBC-Net (tipo3)
Arquitectura JDBCArquitectura JDBC
Programa Java
APIJDBC
DriverJDBC
Driver Servidor
JDBC
PuenteJDBC-ODBC
API delproveedor
Base de Datos
En el servidorEn el cliente
Arquitectura JDBCArquitectura JDBC
Las Clases e Interfaces Las Clases e Interfaces del JDBCdel JDBC
La Clase DriverManagerLa Clase DriverManager La interfaz ConnectionLa interfaz Connection La interfaz StatementLa interfaz Statement La interfaz ResultSetLa interfaz ResultSet
La Clase La Clase DriverManagerDriverManager
Como su nombre indica, esta clase Como su nombre indica, esta clase es la es la administradora de los diversos drivers administradora de los diversos drivers que pueden existir en nuestra aplicación que pueden existir en nuestra aplicación con la finalidad de acceder a varias bases con la finalidad de acceder a varias bases de datos que emplean distintos de datos que emplean distintos manejadores, o bien ambas situaciones a manejadores, o bien ambas situaciones a la vez. De ahí el interés de contar con este la vez. De ahí el interés de contar con este gestor de manejadores.gestor de manejadores.
La Clase La Clase DriverManagerDriverManager
Registro de un Manejador Registro de un Manejador (Driver)(Driver)
Es necesario primero cargar una clase con el driver de la base de datos (esto lo provee el vendedor de la DBMS)
Ejemplo: Registramos 3 drivers para nuestra aplicación.
Class.forName(“com.informix.jdbc.IfxDriver"); Class.forName(“com.novell.sql.LDAPDriver”);Class.forName("com.mysql.jdbc.Driver");Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
La Interfase ConnectionLa Interfase Connection Esta interfaz representa la conexión con Esta interfaz representa la conexión con
la Base de Datos y permite la gestión de la Base de Datos y permite la gestión de dicha conexión (Abrir, Cerrar la dicha conexión (Abrir, Cerrar la conexión).conexión).
La conexión puede estar en dos estados: La conexión puede estar en dos estados: Conectado o Desconectado.Conectado o Desconectado.
Ejemplo: Establecer la conexión con la Base de Datos
Connection cn=null; cn=DriverManager.getConnection("jdbc:odbc:datos","","");
Métodos de la Interfase Métodos de la Interfase ConnectionConnection
void close() Libera lo los recursos de esta conexión.
void commit() Hace permanentes los cambios que se realizaron desde el ultimo commit o rollback.
Statement createStatement() Crea un objeto de tipo Statement.
bolean getAutoCommit() Indica si está en modo auto-commit.
DatabaseMetaData getMetaData() Devuelve un objeto tipo DatabaseMetaData con meta información a cerca de la base de datos contra la cual se ha abierto esta conexión..
CallableStatement prepareCall(String sql) Crea un objeto CallableStatement para ejecutar procedimientos almacenados SQL en la BD.
PreparedStatement prepareStatement(String sql) Crea un objeto PreparedStatement para ejecutar consultas SQL parametrizadas en la BD.
void rollback() Deshace todos los cambios realizados desde la última vez que se ejecutó commit o rollback
Interfaz StatementInterfaz Statement Esta interfaz permite enviar y ejecutar Esta interfaz permite enviar y ejecutar
instrucciones SQL a la base de datos. Podemos instrucciones SQL a la base de datos. Podemos crear un objeto comando con el método crear un objeto comando con el método createStatement()createStatement() de la interfaz de la interfaz ConnectionConnection..
MétodoMétodo DescripciónDescripción
executeQueryexecuteQuery(String sql)(String sql) Exclusivo para ejecutar el Exclusivo para ejecutar el comando SELECTcomando SELECT
executeUpdateexecuteUpdate(String sql)(String sql) Para los comandos Para los comandos DELETE, DELETE, UPDATE, INSERT o una UPDATE, INSERT o una instrucción DDL instrucción DDL
executeexecute(String sql)(String sql) Podemos ejecutar cualquiera Podemos ejecutar cualquiera de los comandos anteriores.de los comandos anteriores.
Interfaz StatementInterfaz StatementEjemplo: Crear el Objeto Statement
Statement stmt=null; stmt=cn.createStatement();
Ejemplo: Crear el Objeto StatementResultSet rs=stmt.executeQuery(“Select * from alumno”);ResultSet rs=stmt.executeQuery(“Select * from alumno”);
stmt.executeUpdate(“create table alumno (nombre stmt.executeUpdate(“create table alumno (nombre varchar(32), matricula integer, direccion varchar(40), añonac varchar(32), matricula integer, direccion varchar(40), añonac integer, ...);integer, ...);
stmt.executeUpdate(“insert into alumnos (‘Valeria Valencia ’, stmt.executeUpdate(“insert into alumnos (‘Valeria Valencia ’, 00998852678, ‘Calle bonita 223 Vitacura Stgo’, 1974, ...);00998852678, ‘Calle bonita 223 Vitacura Stgo’, 1974, ...);
stmt.executeUpdate(“update alumnos set direccion = ‘Av. stmt.executeUpdate(“update alumnos set direccion = ‘Av. Brasil 345’ where nombre = ‘Valeria Valencia’ ”);Brasil 345’ where nombre = ‘Valeria Valencia’ ”);
Interfaz ResultSetInterfaz ResultSetEsta interfaz representa un Esta interfaz representa un esquema de esquema de datosdatos que es el que es el resultado de una consulta resultado de una consulta SelectSelect. Es una estructura generada similar . Es una estructura generada similar a la tabla, con la diferencia que a la tabla, con la diferencia que es virtuales virtual (se localiza en la memoria). La clase posee (se localiza en la memoria). La clase posee una serie de métodos una serie de métodos getXXX(int columna) getXXX(int columna) y y getXXX(String columna) getXXX(String columna) que permiten que permiten acceder a los resultados de la consulta. acceder a los resultados de la consulta.
Ejemplo: Crear un ResultSet y acceder a sus datos ResultSet rs=stmt.executeQuery(“Select * from alumno”);ResultSet rs=stmt.executeQuery(“Select * from alumno”);rs.next();rs.next();System.out.println(rs.getString(1)); //Accede a la 1ra. Columna System.out.println(rs.getString(1)); //Accede a la 1ra. Columna (tipo String)(tipo String)System.out.println(rs.getString(2)); //Accede a la 2da. Columna System.out.println(rs.getString(2)); //Accede a la 2da. Columna (tipo String)(tipo String)System.out.println(rs.getInt(3)); //Accede a la 3ra columna System.out.println(rs.getInt(3)); //Accede a la 3ra columna (tipo int)(tipo int)
ResultSetResultSet