Manejo de conectores I.pdf

download Manejo de conectores I.pdf

of 25

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;

    }