Manejo de conectores I.pdf
Transcript of Manejo de conectores I.pdf
-
7/21/2019 Manejo de conectores I.pdf
1/25
CompanyLOGO
IES ABASTOS ACCESO A DATOS
T2. MANEJO DE
CONECTORES
-
7/21/2019 Manejo de conectores I.pdf
2/25
IES ABASTOS ACCESO A DATOS Adela Tena 2014
CompanyLOGO
IES ABASTOS Acceso a datos CFGS DAW Adela Tena 2014
OBJETIVOS
1. Valorar las ventajas y desventajas de usarconectores.
2. Estalecer cone!"ones# mod"$"cac"ones yconsultas sore una ase de datos usandoconectores
%. Gest"onar transcc"ones con conectores.
T1 MANEJO DE FICHEOS
-
7/21/2019 Manejo de conectores I.pdf
3/25
IES ABASTOS ACCESO A DATOS Adela Tena 2014
CompanyLOGO
IES ABASTOS Acceso a datos CFGS DAW Adela Tena 2014
1. &es$ase ojeto'relac"onal
El problema del desfase objeto relacional consiste en la
diferencia de aspectos que existen entre la
programacin orientada a objetos, con la que se
desarrollan aplicaciones, y la base de datos, con las quese almacena la informacin.
Surgen cuando:
Se realizan actividades de programacin.
Se especif ican los tipos de datos.
En el proceso de elaboracin del software se realiza
una traduccin del modelo orientado a objetos al
modelo Entidad Relacin.
T2 MANEJO DE CONECTOES
-
7/21/2019 Manejo de conectores I.pdf
4/25
IES ABASTOS ACCESO A DATOS Adela Tena 2014
CompanyLOGO
IES ABASTOS Acceso a datos CFGS DAW Adela Tena 2014
2. (rotocolos de acceso a ases de datos.
Conectores.Muchos servidores de bases de datos ofrecen protocolos decomunicacin especf icos
T2 MANEJO DE CONECTOES
Los conectores ofrecen facilidades
para:
Establecer la conexin con la
base de datos
Ejecutar consultas.
Procesar los resultados de las
consultas realizadas.
-
7/21/2019 Manejo de conectores I.pdf
5/25
IES ABASTOS ACCESO A DATOS Adela Tena 2014
CompanyLOGO
IES ABASTOS Acceso a datos CFGS DAW Adela Tena 2014
%. (rotocolos de acceso a ases de datos.
Conectores.
ODBC(Open DataBase Connectivity)
&esarrollado por )"croso$t Inter$ace escr"ta en C
JDBC (Java Database Connectivity)
Inter$a* java
Driver JDBC-ODBC
Conv"erte llamadas J&BC a O&BC
T2 MANEJO DE CONECTOES
-
7/21/2019 Manejo de conectores I.pdf
6/25
IES ABASTOS ACCESO A DATOS Adela Tena 2014
CompanyLOGO
IES ABASTOS Acceso a datos CFGS DAW Adela Tena 2014
+. Componentes J&BC
La propia API JDBC
,ac"l"ta el acceso a las ases de datos relac"onales yperm"te la ejecuc"-n de consultas senc"llas
Esta en los pauetes!a"a#s$l y!a"a%#s$l El &esto' del conecto' JDBC (d')"e' *ana&e'+#
Conecta una apl"cac"-n java con el dr"ver. ,a s-)te de .'-e/as JDBC
Compruea s" un dr"ver cumple los reu"s"tos J&BC
El d')"e' o .-ente JDBCODBC perm"te ut"l"*ar los dr"vers O&BC como s" $uera de
t"po J&BC
T2 MANEJO DE CONECTOES
-
7/21/2019 Manejo de conectores I.pdf
7/25
IES ABASTOS ACCESO A DATOS Adela Tena 2014
CompanyLOGO
IES ABASTOS Acceso a datos CFGS DAW Adela Tena 2014
/. T"pos de conectoresJ&BC
En funcin de los componentes anteriores existen 4 tipos de
controladores JDBC.
Driver tipo 1
Utilizan un API nativa estndar, donde se traducen las
llamadas de JDBC a invocaciones ODBC a travs de libreras
ODBC del sistema operativo.
T2 MANEJO DE CONECTOES
-
7/21/2019 Manejo de conectores I.pdf
8/25IES ABASTOS ACCESO A DATOS Adela Tena 2014
CompanyLOGO
IES ABASTOS Acceso a datos CFGS DAW Adela Tena 2014
0. T"pos de conectoresJ&BC
Driver tipo 2
Utilizan un API nativa de la base de datos, es decir son driversescritos parte en Java y parte en cdigo nativo. El driver usa unalibrera cliente nativa, especf ica de la base de datos con la que
se desea conectar.
T2 MANEJO DE CONECTOES
-
7/21/2019 Manejo de conectores I.pdf
9/25IES ABASTOS ACCESO A DATOS Adela Tena 2014
CompanyLOGO
IES ABASTOS Acceso a datos CFGS DAW Adela Tena 2014
. T"pos de conectoresJ&BC
Driver tipo 3
Utilizan un servidor remoto con una API genrica, es decir sondrivers que usan un cliente Java puro que se comunica con un
middleware server usando un protocolo independiente de la basede datos (por ejemplo, TCP/IP).
T2 MANEJO DE CONECTOES
-
7/21/2019 Manejo de conectores I.pdf
10/25IES ABASTOS ACCESO A DATOS Adela Tena 2014
CompanyLOGO
IES ABASTOS Acceso a datos CFGS DAW Adela Tena 2014
. T"pos de conectoresJ&BC
Driver tipo 4
Es el mtodo ms ef iciente de acceso a base de datos. Este tipode drivers son suministrados por el fabricante de la base de
datos y su f inalidad es convertir llamadas JDBC en un protocolode red comprendido por la base de datos
T2 MANEJO DE CONECTOES
-
7/21/2019 Manejo de conectores I.pdf
11/25IES ABASTOS ACCESO A DATOS Adela Tena 2014
CompanyLOGO
IES ABASTOS Acceso a datos CFGS DAW Adela Tena 2014
3. 4ru"tectura J&BC
A la hora de establecer el canal de comunicacin entre una
aplicacin Java y una base de datos se pueden identif icar dos
modelos distintos de acceso. Estos modelos dependen del
nmero capas que se contemplen.Modelo 2 capas
La aplicacin y el driver estan en la misma mquina. Si la BD
esta en una mquina remota el driver gestionar la comunicacin
a travs de la red
T2 MANEJO DE CONECTOES
-
7/21/2019 Manejo de conectores I.pdf
12/25IES ABASTOS ACCESO A DATOS Adela Tena 2014
CompanyLOGO
IES ABASTOS Acceso a datos CFGS DAW Adela Tena 2014
15. 4ru"tectura J&BCModelo 3 capas
Los comandos se envan a a la capa intermedia de servicios que
enva las consultas a la base de datos.
El applet de java o la aplicacin se ejecuta en una mquina y
accede al driver situado en otra mquina
Ejemplo: applet accediendo a travs de un servidor web o
cuando una aplicacin accede a una base de datos de un
servidor remoto.
T2 MANEJO DE CONECTOES
-
7/21/2019 Manejo de conectores I.pdf
13/25IES ABASTOS ACCESO A DATOS Adela Tena 2014
CompanyLOGO
IES ABASTOS Acceso a datos CFGS DAW Adela Tena 2014
11. 4cceso a una B& con J&BC
T2 MANEJO DE CONECTOES
CL4SE E I6TE7,4CE &ESC7I(CI86&r"ver (erm"te conectarse a una ase de datos.
&r"ver)ana9er (erm"te 9est"onar todos los dr"vers "nstalados.
&r"ver(roperyIn$o (roporc"ona "n$ormac"-n acerca del dr"ver
Connect"on 7epresenta una cone!"-n a la B&&ataase)etadata (roporc"ona "n$ormac"-n de la B&
Statement (erm"te ejecutar sentenc"as S:L
(repareStatement (erm"te ejecutar sentenc"as S:L con par;metros
de entradaCallaleStatement (erm"te ejecutar sentec"as S:L con par;metrosE
-
7/21/2019 Manejo de conectores I.pdf
14/25IES ABASTOS ACCESO A DATOS Adela Tena 2014
CompanyLOGO
IES ABASTOS Acceso a datos CFGS DAW Adela Tena 2014
12. 4cceso a una B& con J&BC
T2 MANEJO DE CONECTOES
-
7/21/2019 Manejo de conectores I.pdf
15/25IES ABASTOS ACCESO A DATOS Adela Tena 2014
CompanyLOGO
IES ABASTOS Acceso a datos CFGS DAW Adela Tena 2014
1%. Clases ;s"cas del 4(I J&BC
T2 MANEJO DE CONECTOES
La interfaz del conector JDBC reside en los paquetes java.sql
Javax.sql
En la interfaz hay distintos tipos de objetos: Connection,Statement y ResultSet.
Los objetos de la clase Connectionofrecen un enlace activo a
una base de datos a travs del cual un programa en Java
puede leer y escribir datos, as como explorar la estructura de
la base de datos y sus capacidades.
Se crea con una llamada a DriverManager.getConnection()o
a DataSource.getConnection();
-
7/21/2019 Manejo de conectores I.pdf
16/25IES ABASTOS ACCESO A DATOS Adela Tena 2014
CompanyLOGO
IES ABASTOS Acceso a datos CFGS DAW Adela Tena 2014
1+. Clases ;s"cas del 4(I J&BC
T2 MANEJO DE CONECTOES
La interfaz DriverManager, complementaria de la clase
Connection, con ella se registran los controladores JDBC y se
proporcionan las conexiones que permiten manejar las URL
especf icas de JDBC. Se consigue con el mtodo
getConnection()
La clase Statementproporciona los mtodos para que las
sentencias, utilizando el lenguaje de consulta estructurado
(SQL), sean ejecutadas sobre la base de datos.
Adems el API JDBC ofrece la posibilidad de gestionar
excepciones con la clase SQLException.La mayor parte de
las operaciones del api lanzarn la excepcin
java.sql.SQLException.
-
7/21/2019 Manejo de conectores I.pdf
17/25IES ABASTOS ACCESO A DATOS Adela Tena 2014
CompanyLOGO
IES ABASTOS Acceso a datos CFGS DAW Adela Tena 2014
1/. Clases ad"c"onales del 4(I J&BC
T2 MANEJO DE CONECTOES
Adems de las clases bsicas anteriores, el API JDBC tambin
ofrece la posibilidad de acceder a los metadatos de una base de
datos.
Con ellos se puede obtener informacin sobre la estructura de la
base de datos y, gracias a ello, se pueden desarrollar aplicaciones
independientemente del esquema que tenga la base de datos.
Los objetos de la clase DatabaseMetaDataofrecen la
posibilidad de operar con la estructura y capacidades de las
bases de datos. Se instancian con connection.getMetaData(). Los objetos de la clase ResultSetMetaData son el resultSet
que se devuelve al hacer executeQuery() de un objeto
DatabaseMetaData.
-
7/21/2019 Manejo de conectores I.pdf
18/25IES ABASTOS ACCESO A DATOS Adela Tena 2014
CompanyLOGO
IES ABASTOS Acceso a datos CFGS DAW Adela Tena 2014
10. Instalar conector )yS:L
T2 MANEJO DE CONECTOES
Pasos para instalar el conector en un proyecto NetBeans
Descargar y descomprimir el f ichero mysql-connector-java-
5.a.xx.zip.
Crear una carpeta liben la raz del proyecto.
Incluir el f ichero mysql-connector-java-5.1-bin.jaren la
capeta lib
Desde NetBeans pulsar botn derecho sobre le nombre del
proyecto seleccionar propiedades en el men lateral
pulsar propiedades Add JAR/Folder
Seleccionar el f ichero mysql-connector-java-5.1-bin.jar y
pulsar abrir.
-
7/21/2019 Manejo de conectores I.pdf
19/25IES ABASTOS ACCESO A DATOS Adela Tena 2014
CompanyLOGO
IES ABASTOS Acceso a datos CFGS DAW Adela Tena 2014
1. Instalar conector )yS:L
T2 MANEJO DE CONECTOES
Pasos para instalar el conector para todos los proyectos
Aadir la ruta del conecto a la variable de entorno CLASSPATH
$ CLASSPATH=\mysql-connector-
java.5.1.21-bin.jar
-
7/21/2019 Manejo de conectores I.pdf
20/25IES ABASTOS ACCESO A DATOS Adela Tena 2014
CompanyLOGO
IES ABASTOS Acceso a datos CFGS DAW Adela Tena 2014
1. Ejemplo de cone!"-n a )yS:L
T2 MANEJO DE CONECTOES
public void abrir_conexion(){
// crear la conexin
Connection conn1 = null;
try{
String url1=jdbc:mysql://localhost:3306/discograf ia;String user=root;
String password =;// no tiene clave
conn1 = DriverManager.getConnection(url1,user,password);
}catch(SQLException ex){
System.out.println(ERROR: direccin no vilda o usuario/clave);}
}
6OT4= para poder real"*ar la cone!"-n el conector dee estar car9ado#or"9"nalmente se car9aa con Class#o'Na*e(d')"e'+#En este caso
se detectase autom;t"camente al poner el dr"ver en la carpeta l)/
-
7/21/2019 Manejo de conectores I.pdf
21/25IES ABASTOS ACCESO A DATOS Adela Tena 2014
CompanyLOGO
IES ABASTOS Acceso a datos CFGS DAW Adela Tena 2014
13. Cerrar la cone!"on a )yS:L
T2 MANEJO DE CONECTOES
public void cerrar_conexion(){
try{
conn1.close();
}catch(SQLException ex){
System.out.println(ERROR: al cerrar la conexin);
}
-
7/21/2019 Manejo de conectores I.pdf
22/25IES ABASTOS ACCESO A DATOS Adela Tena 2014
CompanyLOGO
IES ABASTOS Acceso a datos CFGS DAW Adela Tena 2014
25. Gest"-n e errores
T2 MANEJO DE CONECTOES
Cuando se produce un error de acceso a la base de datos salta la
excepcin SQLException
Esta Excepcin permite el acceso a cierta informacin a travs de
los siguientes mtodos:
getMessage() Devuelve una cadena que describe el error
getSQLState() Cadena que contiene un estado def inido en el
estndar X/OPEN SQL
getErrorCode() es un entero que proporciona el cdigo de
error del fabricante.
-
7/21/2019 Manejo de conectores I.pdf
23/25IES ABASTOS ACCESO A DATOS Adela Tena 2014
CompanyLOGO
IES ABASTOS Acceso a datos CFGS DAW Adela Tena 2014
21. (ool de cone!"ones
T2 MANEJO DE CONECTOES
El objetivo es usar la misma conexin fsica para para varios hilos
de ejecucin sin que la informacin se entremezcle.
Posibles soluciones:
Abrir y cerrar la conexin cada vez que la necesitamos
Desventaja: inef iciencia. El coste de establecer la conexines alto.
Usar una nica conexin y sincronizar el acceso a la BD entrelos distintos hilos. Para ello hay que usar synchonized antes dehacer una cualquier transaccin a la base de datos.
Desventaja: Disciplina al programar y los hilos tienen queesperar
Tener varias conexiones abiertas (pool de conexiones) deforma que cuando un hilo la necesite la pida y cuando terminela libere.
-
7/21/2019 Manejo de conectores I.pdf
24/25IES ABASTOS ACCESO A DATOS Adela Tena 2014
CompanyLOGO
IES ABASTOS Acceso a datos CFGS DAW Adela Tena 2014
22. (ool de cone!"ones
T2 MANEJO DE CONECTOES
Un pool de conexiones en java es una clase que tiene abiertas
varias conexiones a la base de datos.
Para abrir una conexin se usa el mtodo pool.getConnection();
El pool coge una de las conexiones abiertas y la marca comoasignada.
Librera necesarias:
commons-dbcp-all-1.3.jar(hay que aadirla al proyecto). Esta
librera a su vez necesita la librera common-pool.
La clase BasicDataSource es la que devolver la conexin tras
ser convenientemente inicializada con los parmetros de la
conexin.
-
7/21/2019 Manejo de conectores I.pdf
25/25
CompanyLOGO
IES ABASTOS Acceso a datos CFGS DAW Adela Tena 2014
2%. (ool de cone!"ones
T2 MANEJO DE CONECTOES
public Connection crearConexion(){
BasicDataSource bSource=new BasicDataSource();
BdSource.setUrl(jdbc:mysql://localhost:3306/discograf ia);
BdSource.setUsername(root);
BdSource.setPassword();
Connection con=null;try{
If (con!=null){
System.out.println(No se puede crear la conexin);
}else{
//Datasource reserva una conexin y la devuelve para ser usada
con=bdSource.getConnection();
> System.out.println(Conexin creada);}
catch(Exception e){
System.out.println(Error:+e.String());
}
return con;
}