Академический Документы
Профессиональный Документы
Культура Документы
INTRODUCCIN
La API que permite la conexin entre los programas de Java y las bases de datos se llama JDBC (Java Database Connectivity) y se encuentra dentro del paquete java.sql.
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.
DEPENDENCIA DE PAQUETES
Java.sql
Interfaces
mi.paquete
ResulSet
Prepared Statement
Connection
Clases
Oracle.jdbc.driver Org.hsqldb Otros.drivers
Levantar el driver
Establecer la conexin Ejecutar el query
Cerrar la conexin
Estableciendo conexin
la
con=DriverManager.getConnection(url,usr,pwd);
String sql = SELECT empleado FROM emp; pst=con.prepareStatement(sql); Salida = pst.executeQuery(); Salida.close(); pst.close(); Con.close();
CONTROLADORES JDBC
Los controladores JDBC son adaptadores del lado-cliente (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 4 tipos de controladores para la mayora de las bases de datos relacionales:
Tipos de conexin
Conexin Directa.- A la derecha, el controladorJD BC accede directamente al controlador del fabricante (DB Client Lib); este tipo de controladores JDBC se denominan de nivel 3 4. Entre los manejadores de base de datos que poseen una conexin directa con Java, tenemos a: My Sql, Sybase DB2, Oracle. Ya que estas no necesitan un puente para comunicarse, el trabajo y la conexin son mucho ms rpidos que una conexin indirecta. Conexin Indirecta.- A la izquierda el controlador JDBC hace de "puente" con el controlador ODBC, que es el que accede a la base de datos, este es un esquema de un controlador JDBC de nivel tipo 1.
PAQUETE Java.sql
En el paquete java.sql existen clases trabajar con las bases de datos. para
JDBC
LOS URL de JDBC.- La nocin de un URL en JDBC es muy similar al modo en que los URL se utilizan en otras situaciones. Para poder entender la base lgica de los URL de JDBC, consideremos una aplicacin que utiliza diversas bases de datos; a cada base de datos se accede mediante diferentes drivers, dependiendo del fabricante de la base de datos.
JDBC
Los URL de JDBC proporcionan un modo de identificar un driver de base de datos, en el caso de una conexin directa. Un URL de JDBC representa un driver y la informacin adicional especfica del driver para localizar una base de datos y conectarla a l. La sintaxis del URL del JDBC es como sigue:
jdbc:<subprotocolo>:<subname>
Se puede observar que estn separadas en tres partes por dos puntos.
Tipos de conexin
Por ejemplo en una conexin directa con DB2, y una base de datos de nombre libros, seria: jdbc:db2j:libros y para una conexin indirecta con Microsoft SQL Server utilizando un punte de datos JDBC-O D BC de nombre libros, nuestro URL seria:
jdbc:odbc:libros
Mquina cliente
JDBC
Aplicacin de Java Server (servlets)
Servidor
JDBC
DBMS
DBMS
ANALIZANDO EL CDIGO
String driver = org.hsqldb.jdbcDriver; String url = jdbc:hsqldb:hsql://localhost/xdb;
La clase public jdbcDriver hereda a java.lang.Object que a su vez implementa java.sql. Driver.
Lo primero que se debe de hacer es levantar el driver a memoria, esto se hace mediante la instruccin:
Class.forname(driver);
ESTABLECIENDO LA CONEXIN
Con el driver levantado se puede establecer la conexin. Esto se hace con la siguiente instruccin: con = DriverManager.getConnection(url,usr,pwd);
El mtodo esttico getConnection de la clase DriverManager es un factory method a travs del cual se obtiene una instancia de la clase que implementa la interface Connection, donde con es una referencia a un objeto de la clase jdbcConnection que se provee como parte del driver de HSQL.
Clase DriverManager
DRIVER MANAGER.- El propsito de la clase java.sql.DriverManager
(gestor de driver) en JDBC es proporcionar una capa de acceso comn encima de diferentes drivers de base de datos utilizados en una aplicacin. En este enfoque las aplicaciones utilizan la clase DriverManager para obtener conexiones, a travs de su argumento URL. Por ejemplo para MySQL Server el driver seria: try{ Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); } catch(ClassNotFoundException e) { }
Estableciendo la conexin
Donde : Connection con = null; PreparedStatement psm = null; ResultSet rs= null;
ResultSet
rs = psm.executeQuery();
El mtodo executeQuery retorna una instancia de tipo ResultSet. El ResultSet es el conjunto de filas retornado por el query que se acaba de ejecutar. El objeto ResultSet tiene un apuntador que apunta a la fila nmero 0 para acceder a la fila nmero 1 se debe avanzar el apuntador a la siguiente fila, esto se hace con el mtodo next, mientras existan registros este mtodo retorna verdadero (true), cuando ya no existen registros retorna falso (false).
En el siguiente cdigo, se avanza el apuntador del ResultSet mientras hayan registros. Se puede acceder a los campos de los registros apuntada por el puntero del ResultSet por medio de los mtodos getInt, getString, getDate, los cuales corresponden a los tipos de datos de los campos.
Finally
Por ltimo en finally se cierran los recursos rs, psm y con. Los mtodos close de estos objetos pueden arrojar excepciones de tipo SQLException, por este motivo los cerramos dentro dentro de un bloque try catch.
finally {
try{ if (rs != null) rs.close(); if (psm != null) psm.close(); if (con!= null) con.close(); } Catch(Exception ex){ ex.printStackTrace(); throw new RuntimeException (ex); } }
ODBC
Open Database Connectivity (ODBC) es un estndar de acceso a Bases de Datos desarrollado por Microsoft Corporation, el objetivo de ODBC es hacer posible el accesar a cualquier dato desde cualquier aplicacin, sin importar qu Sistema Gestor de Bases de Datos (DBMS) almacene los datos, el ODBC logra esto al insertar una capa intermedia llamada manejador de Bases de Datos, entre la aplicacin y el DBMS, el propsito de esta capa es traducir las consultas de datos de la aplicacin en comandos que el DBMS entienda. Para que esto funcione tanto la aplicacin como el DBMS deben ser compatibles con ODBC, esto es que la aplicacin debe ser capaz de producir comandos ODBC y el DBMS debe ser capaz de responder a ellos.
Ejemplo
Para comenzar se crea una base de datos llamada Agenda, con una unica tabla llamada directorio. Una vez creada la base de datos se crea el mtodo Consulta en Java usando el conector ODBC.
public Consulta(){ Connection con = null; try{ Class.forname(sun.jdbc.odbc.JdbcOdbcDriver ); con = DriverManager.getConnection(jdbc:odbc:Agenda,root,); Statement s = con.createStatement(); ResultSet rs = s.executeQuery(select * from directorio);
Continuacin ejemplo
Los resultados se guardarn en una variable de tipo ResultSet, ahora se recorre el ResultSet mostrando en la pantalla los resultados.
CERRANDO LA CONEXIN
con.close(); } catch(Exception e) { System.out.println(No se logr la conexin); } }
INSTALACIN DE MySQL
Descargando el archivo
Descargando MySql
El siguiente paso es desempaquetar este archivo con winzip o unzip
Descomprimiendo el archivo
Desempaquetando el archivo
El desempaquetamiento produce los archivos que se observan en la figura
Al descomprimir el archivo crea una carpeta con el nombre mysql-5.5.8-win64, ah se encuentran los archivos descomprimidos
Instalacin de MySQL
Buscamos el archivo .EXE de MySQL, hacemos clic sobre el para dar inicio al proceso de instalacin
Instalar el Driver
Para cargar el driver de MySQL para Java se puede hacer desde la pgina
http://dev.mysql.com/downloads/conector/j/3.1.html Para buscar el conector mysql-conector-java-5.1.14.bin
Creando un proyecto nuevo (Java Aplication) con NetBeans y presionando el botn next
Nombre al Proyecto
Poniendo nombre al proyecto, en este caso le pongo Consulta y presionamos el botn finish
Cdigo generado
La biblioteca se ha agregado
Como se observa en la parte izquierda del cuadro de dilogo la biblioteca se ha agregado, ahora se van agregar algunos detalles a la biblioteca. Hay que fijarse que la nueva biblioteca creada este seleccionada como se observa en la parte izquierda del cuadro de dilogo.
Conector agregado
En la parte Library Classpath aparece la ruta y el archivo que se acaba de agregar, damos clic en el botn OK del cuadro de dilogo Library Manager
La biblioteca se ha agregado
Como se observa la nueva biblioteca se ha agregado al proyecto aparece como una nueva entrada en la carpeta Libraries del proyecto. Una vez instalado MySQL, descargado el driver para Java de MySQL el siguiente paso es hacer el programa en Java que me permita conectarme a la base de datos de MySQL y consultar la tabla que se ha creado.
El servidor de MySQL abre por defecto el puerto 3306 para aceptar conexiones de posibles clientes. La aplicacin de Java deber conectarse la servidor de MySQL para acceder a la base de datos que ya se ha creado.
El primer parmetro del mtodo getConnection() es un String que contiene la URL de la base de datos: jdbc:mysql es as porque se esta usando el driver jdbc para MySQL Localhost porque el servidor de la base de datos esta en la misma computadora en la que se esta corriendo la aplicacin de Java, si estuviera la base de datos en otra computadora se tendra que poner la IP de la mquina remota. Prueba es el nombre de la base de datos que esta en el servidor cuando se ejecuta create database prueba
Statement s = conexin.createStatement();
El Statement obtenido tiene un mtodo executeQuery(). Este mtodo sirve para realizar una consulta a la base de datos. El parmetro que se pasa es un string en el que est la consulta en SQL, donde persona es el nombre de la tabla.El mtodo executeQuery retorna una instancia de ResultSet. El ResulSet es el conjunto de filas retornado por el query que acabamos de ejecutar.
ResultSet rs = s.executeQuery(select * from persona);
Cerrando la conexin
Una vez que se ha terminado de usar la conexin, esta se se debe cerrar, esto significa terminar la conexin con la base de datos, el fragmento de cdigo indica como hacerlo:
conexion.close();
Programa de consulta
Agregando el conector
El siguiente cuadro de dilogo sirve para agregar el conector presione el botn Add
Agregando el conector
En el cuadro de dilogo para seleccionar el conector, navegue hasta la ubicacin del conector, seleccinelo y presione el botn Abrir
Estableciendo la conexin
Si el servidor utiliza el puerto predefinido, se puede omitir; baseDatos es la base de datos a la que se desea conectar. Establezca el nombre del usuario, User Name:, y contrasea, Password:, para acceder a la base de datos y presione el botn OK
Estableciendo la conexin
En la ventana Services, aparecer un nuevo nodo con la conexin a la base de datos, como se muestra en la figura.
En la base de datos mancilla en MySQL se encuentra la tabla alumnos con los datos que se muestran en la figura.
Modificando el programa
Ejecutando el programa
Tarea
Hacer un programa en Java que se conecte a una base de datos remota llamada Empleado en MySQL, donde se puedan hacer altas, bajas, consultas, modificaciones, directorio y salir. Usar componentes awt o swing.