Conexion Con JDBC - Copia

download Conexion Con JDBC - Copia

of 26

  • date post

    01-Jan-2016
  • Category

    Documents

  • view

    15
  • download

    3

Embed Size (px)

Transcript of Conexion Con JDBC - Copia

  • Tpicos de Programacin

    ACCESO A BASE DE DATOS CON JDBC

    Ing. Edwin Octavio Ramos Velsquez

    Universidad Nacional Jos Mara ArguedasESCUELA PROFESIONAL DE INGENIERA DE SISTEMAS

    FACULTAD DE INGENIERA

    Nota: El contenido de estas presentaciones ha sido extrado desde

    http://www.iuma.ulpgc.es/users/lhdez/inves/pfcs/memoria-ivan/node8.html

    El autor de tales contenidos es Luis Hernndez 2004-09-28

  • TIPOS DE DRIVER JDBC

    Tipo 1: Puente JDBC-ODBCTipo 2: Driver API nativo/parte JavaTipo 3: Driver protocolo de red/todo JavaTipo 4: Driver protocolo nativo/todo Java

  • Desventajas:Rendimiento: Como puede imaginar por el nmero de capas y traducciones que tienenlugar, utilizar el puente est lejos de ser la opcin ms eficaz en trminos de rendimiento.

    Las funcionalidades del driver JDBC-ODBC, se limita a proporcionar acceso a caratersticascomunes a todas las bases de datos. No pudiendo hacer uso de las mejoras que cadafabricante introduce en sus productos, especialmente en lo que afecta a rendimiento yescalabilidad.

    El driver puente no funciona adecuadamente con applets. El driver ODBC y la interfaz deconexin nativa deben estar ya instalados en la mquina cliente. Por eso, cualquier ventajade la utilizacin de applets en un entorno de Intranet se pierde, debido a los problemas dedespliegue que conllevan las aplicaciones tradicionales.

    La mayora de los browser no tienen soporte nativo del puente. Como el puente es uncomponente opcional del Java 2 SDK Standard Edition, no se ofrece con el navegador.Incluso si fuese ofrecido, slo los applets de confianza (aquellos que permiten escribir enarchivos) sern capaces de utilizar el puente. Esto es necesario para preservar la seguridadde los applet. Para terminar, incluso si el applet es de confianza, ODBC deve ser configuradoen cada mquina cliente

    Tipo 1: Driver puente JDBC-ODBC

    El puente se implementa como el paquete sun.jdbc.odbc y contiene una biblioteca nativa utilizada para acceder a ODBC

    Ventajas:Trabajan con una gran cantidad de drivers ODBC. Los desarrolladores suelen utilizar ODBC para conectar con bases de datos en un entorno distinto de Java.

  • Tipo 1: Driver puente JDBC-ODBC

    Estacin PC con Base de datos y Driver ODBC instalado

    Aplicacin Java

    Interfaz JDBC

    Entorno de Aplicaciones Java

  • Tipo 2: Driver API Nativo / parte Java

    VentajasEl driver de tipo 2 ofrece un rendimientosignificativamente mayor que el puente JDBC-ODBC,ya que las llamadas JDBC no se convierten enllamadas ODBC, sino que son directamente nativas.

    DesventajasLa biblioteca de la base de datos del fabricante necesita iniciarse en cada mquina cliente. En consecuencia, los drivers de tipo 2 no se pueden utilizar en Internet. Los drivers de tipo 2 muestran menor rendimiento que los de tipo 3 y 4.

    Un driver de tipo 2 tambin utiliza la interfaz nativa de Java, que no est implementada de forma consistente entre los distintos fabricantes de JVM por lo que habitualmente no es muy portable entre plataformas.

  • Tipo 2: Driver API Nativo / parte Java

    Estacin PC con Base de datos y Driver AOI Nativo instalado

    Aplicacin Java

    Interfaz JDBC

    Entorno de Aplicaciones Java

  • Tipo 3: Driver protocolo de red / todo Java

    Los drivers JDBC de tipo 3 estn implementados en una aproximacin de tres capas por lo que lassolicitudes de la base de datos JDBC estn traducidas en un protocolo de red independiente de labase de datos y dirigidas al servidor de capa intermedia. El servidor de la capa intermedia recibe lassolicitudes y las enva a la base de datos utilizando para ello un driver JDBC del tipo 1 o del tipo 2(lo que significa que se trata de una arquitectura muy flexible).

    Ventajas El driver protocolo de red/todo Java tiene un componente en el servidor intermedio, por lo que no

    necesita ninguna biblioteca cliente del fabricante para presentarse en las mquinas clientes. Los drivers de tipo 3 son los que mejor funcionan en redes basadas en Internet o Intranet,

    aplicaciones intensivas de datos, en las que un gran nmero de operaciones concurrentes comoconsultas, bsquedas, etc., son previsibles y escalables y su rendimiento es su principal factor. Haymuchas oportunidades de optimizar la portabilidad, el rendimiento y la escalabilidad.

    El protocolo de red puede estar diseado para hacer el driver JDBC cliente muy pequeo y rpidode iniciar, lo que es perfecto para el despliegue de aplicaciones de Internet.

    Adems, un driver tipo 3 normalmente ofrece soporte para caractersticas como almacenamientoen memoria cach (conexiones, resultados de consultas, etc.), equilibrio de carga, yadministracin avanzada de sistemas como el registro.

    La mayor parte de aplicaciones web de bases de datos basadas en 3 capas implican seguridad,firewalls y proxis y los drivers del tipo 3 ofrecen normalmente estas caractersticas.

  • Tipo 3: Driver protocolo de red / todo Java

    Driver JDBC

    Base de DatosAplicacin JavaMidleware

    Servidor de Aplicaciones

    Ej. Tomcat, JBoss, Glassfish

    Interaccin Aplicacin=Base de Datos

    Aplicacin clienteEj.*.jsp, *.php, *.asp, *.,apx, *.jar

    Interaccin con protocolos de red

    No se requieren drivers JDBC Si requiere drivers JDBC

  • Tipo 4: Driver protocolo nativo / todo Java

    Este tipo de driver comunica directamente con el servidor de bases de datos utilizando el protocolonativo del servidor. Estos drivers pueden escribirse totalmente en Java, son independientes de laplataforma y eliminan todos los aspectos relacionados con la configuracin en el cliente. Estos driverstraducen JDBC directamente a protocolo nativo sin utilizar ODBC o la API nativa, por lo que puedenproporcionar un alto rendimiento de acceso a bases de datos

    Ventajas Como los drivers JDBC de tipo 4 no tienen que traducir las solicitudes de ODBC o de una interfaz de

    conectividad nativa, o pasar la solicitud a otro servidor, el rendimiento es bastante bueno. Adems, eldriver protocolo nativo/todo Java da lugar a un mejor rendimiento que los de tipo 1 y 2.

    Adems, no hay necesidad de instalar ningn software especial en el cliente o en el servidor. Adems,estos drivers pueden bajarse de la forma habitual.

    DesventajaEste driver es especfico de un fabricante determinado de base de datos. Cuando la base de datosnecesita ser cambiada a un producto de otro fabricante, no se puede utilizar el mismo driver. Por elcontrario, hay que reemplazarlo y tambin el programa cliente, o su asignacin, para ser capaces deutilizar una cadena de conexin distinta para iniciar el driver. el usuario necesita un driver distinto paracada base de datos.

  • OPERACIONES TIPICAS DE ACCESO A DATOS

    Cargar un driver de base de datos Establecer conexiones con bases de datos Crear y ejecutar instrucciones SQL Consultar bases de datos Realizar transacciones

  • TRANSACTION.BEGIN

    SELECT * FROM Alumno

    INSERT INTO Alumno UPDATE Docente SET ..

    TRANSACTION.COMMIT Rollback?

    JDBC

    Driver JDBC

    Firebird

    Driver JDBC

    MySQL

    Set de Drivers Especificos

    TransaccionesConsultas

    SGBDFirebirdMySQL

    PostgreeEtc.

  • Cargar un driver de base de datos y abrir conexiones

    JDBC

    Driver JDBC

    Firebird

    Driver JDBC

    MySQL

    Set de Drivers Especificos

    El API JDBC ofrece dos vas diferentes para obtener conexiones. La primera utiliza la clase java.sql.DriverManager y es adecuada para acceder a bases de datos desde programas cliente escritos en Java. El segundo enfoque se basa en el acceso a bases de datos desde aplicaciones J2EE (Java 2 Enterprise Edition)

    java.sql.DriverManager

    J2EE (Java 2 Enterprise Edition)

  • Como se obtienen las conexiones JDBC java.sql.DriverManager. En una aplicacin, podemos obtener una

    o ms conexiones para una o ms bases de datos utilizandodrivers JDBC. Cada driver implementa la interfazjava.sql.Driver. Uno de los mtodos que define esta interfaz esel mtodo connect(), que permite establecer una conexin conla base de datos y obtener un objeto Connection.

    En lugar de acceder directamente a clases que implementan lainterfaz java.sql.Driver, el enfoque estndar para obtenerconexiones es registrar cada driver con java.sql.DriverManagery utilizar los mtodos proporcionados en esta clase para obtenerconexiones. java.sql.DriverManager puede gestionar mltiplesdrivers. Antes de entrar en los detalles de este enfoque, espreciso entender cmo JDBC representa la URL de una base dedatos.

    En adelante, usaremos el registro de cada driver con java.sql.DriverManager

  • Los URL de JDBC

    La nocin de un URL en JDBC es muy similar al modo tpico de utilizar los URL. Los URL de JDBCproporcionan un modo de identificar un driver de base de datos. Un URL de JDBC representa un drivery la informacin adicional necesaria para localizar una base de datos y conectar a ella. Su sintaxis esla siguiente:

    jdbc::

    Existen tres partes separadas por dos puntos: Protocolo: En la sintaxis anterior, jdbc es el protocolo. ste es el nico protocolo permitido en

    JDBC. Subprotocolo: Utilizado para identificar el driver que utiliza la API JDBC para acceder al

    servidor de bases de datos. Este nombre depende de cada fabricante. Subnombre: La sintaxis del subnombre es especfica del driver.

    Por ejemplo, para una base de datos MySQL llamada ``Bank'', el URL al que debe conectar es:jdbc:mysql:Bank

    Alternativamente, si estuviramos utilizando Oracle mediante el puente JDBC-ODBC, nuestro URL Sera:

    jdbc:odbc:Bank

    Como puede ver, los URL de JDBC son lo suficientemente flexibles como para especificar informacinespecfica del driver en el subnombre.

  • La clase Dr