2.Conectividad ODBC y JDBC PDF

Title 2.Conectividad ODBC y JDBC
Course Taller de ingenieria de software
Institution Universidad Siglo 21
Pages 11
File Size 337.3 KB
File Type PDF
Total Downloads 43
Total Views 150

Summary

apuntes de clase que sirven para el examen...


Description

ŽŶĞĐƚŝǀŝĚĂĚ K LJ  :

Construcción de Software

Acceso a Base de Datos Referencia bibliográfica para el alumno sobre el punto 2.7: Servlet y JSP Autor: Marty Hall – Capítulo 18 http://java.sun.com/docs/books/tutorial/jdbc/index.html Conceptos generales Introducción La necesidad de las empresas de utilizar una cantidad masiva de datos no es algo nuevo. Desde los albores de la informática, se plantearon distintos modelos de administración, actualización, acceso y consumo de datos desde las aplicaciones, llegando a la actualidad a los grandes motores de gestión de bases de datos como Oracle, Sql Server, DB2, MySql y otros. Estos sistemas son conocidos como Sistemas de Administración de Bases de Datos, o su sigla en inglés DBMS (Data Base Management System). Los mismos se encargan de la administración total de las estructuras de tablas, los datos contenidos, los índices, los procedimientos almacenados, la utilización de recursos, las conexiones concurrentes, las transacciones, etc. Pero, las bases de datos generalmente no están aisladas, sino que se conectan o son accedidas desde distintas aplicaciones, que pueden estar escritas en cualquier lenguaje de programación (para el cual exista soporte). Para lograr dicha conexión desde las aplicaciones, se han establecido con el tiempo una serie de estándares, entre los que encontramos ODBC, y en nuestro caso puntual de Java, JDBC. Conectividad mediante ODBC ODBC (Open DataBase Conectivity) o Conectividad Abierta de Bases de Datos, creado por Microsoft, es un sistema intermediario entre bases de datos y aplicaciones, cuya tarea es proporcionar un canal de comunicación de peticiones y respuestas entre dos sistemas que no utilizan el mismo idioma para comunicarse y que gestionan sus recursos de forma diferente. Por ejemplo, programas como Autocad, una hoja de cálculo, un editor de texto, entre otros, (cuyas finalidades son cualquiera, menos gestionar datos en la forma que lo hace un sistema de base de datos), no saben cómo se obtienen y se guardan datos en un archivo de Microsoft Access, de SQL Server, de MySQL o cualquier otra base de datos.

-1-

Otro ejemplo sería que un usuario de Paradox quisiera extraer información de un sistema de Bases de Datos Nuevo (SQL AP). Ambos son sistemas de bases de datos, Paradox conoce la forma de leer de los archivos de los sistemas conocidos, pero no los de SQL AP Para que estas aplicaciones puedan comunicase, es necesario configurarlas utilizando ODBC para que sus recursos queden publicados y puedan ser accedidos. Para configurar el acceso mediante ODBC, debemos abrir el Panel de Control / Herramientas Administrativas / Orígenes de Datos (ODBC). En dicha ventana se muestran una serie de conexiones ya establecidas. 1- Haciendo click en la opción Agregar pase a seleccionar el tipo de origen que tiene ―origen de datos‖. Si el driver específico no se encuentra, debe instalarlo. 2- Luego, el sistema solicitará los datos propios de la base de datos, además del Nombre del Origen de Datos o DSN. Haciendo clic en la opción Seleccionar, permite buscar la base de datos y asociarla al DSN. DSN (Data Source Name) es cada una de las configuraciones agregadas en el sistema ODBC. Los mismos pueden ser de 3 tipos:   

DSN de usuario: Son los DSN que declara el usuario para uso propio. No se pueden compartir DSN de sistema: Son DSN declarados en determinada máquina o sistema y se pueden compartir entre los distintos usuarios. DSN de archivo: Crea un archivo con extensión .dsn referenciando a un origen de datos. El archivo dsn puede distribuirse a otros usuarios. Este tipo de DSN es el que utiliza Excel para conectarse.

Los DSN publicados pueden ser accedidos desde distintas aplicaciones y/o lenguajes de programación. El estándar ODBC no se limita solamente a los entornos Windows. También se encuentra disponible en entornos Unix o Linux mediante la incorporación del paquete unxiODBC. Las configuraciones a realizar en estos entornos son similares a las de Windows.

JDBC. Conectividad JDBC La API JBDC o Java Data Base Connectivity, es una interfaz de acceso a RDBMS (Relational Data Base Management System) independiente de la plataforma y del gestor de bases de datos utilizado. El API consiste en una serie de interfaces Java implementadas por un controlador. Este programa de gestión se encarga de la traducción a las llamadas estándar que requiere la base de datos compatible con él. De esta manera el programador puede abstraerse de la programación específica de la base de datos creando código que funcionará para todas los RDBMS que cuenten con un driver JDBC, con solo cambiar dicho driver.

- 2-

En la actualidad se encuentran drivers JDBC para todos los sistemas de gestión de bases de datos más populares (e incluso podríamos decir existentes) como Informix, Oracle, Sql Server, DB2, InterBase, SyBase y otros productos de índole no comercial como mSql, MySql, PostGre, FireBird, otros. Aún así existe un tipo especial de drivers denominados puentes JDBC-ODBC que traducen las llamadas en JDBC a llamadas en el estándar de comunicación con bases de datos ODBC, por lo que en último término siempre se podrá utilizar uno de estos drivers ya que la totalidad de los sistemas de gestión de bases de datos cuentan con un driver de este ultimo tipo. Esto nos lleva a la clasificación de los distintos drivers que cumplen la especificación JDBC 1.2. - Nivel 1, Puente JDBC-ODBC: Esta categoría de controladores se remite al controlador de puente JDBC-ODBC original. Este último utiliza el controlador ODBC de Microsoft para comunicarse con los servidores de base de datos. Se implementa tanto en código binario como en Java y debe ser instalado previamente en la computadora cliente antes de poder usarlo. - Nivel 2, Controlador JDBC de protocolo nativo en Java y binario: Esta categoría está compuesta por controladores que hablan con los servidores de bases de datos en el protocolo nativo de la base de datos. Se implementan como una combinación de código binario y Java y deben ser instalados en el cliente antes de poder ser usados. - Nivel 3, Controlador JDBC de protocolo no nativo en Java puro: Esta categoría está formada por controladores de Java puro (no hay código binario) que hablan un protocolo de red estándar (como HTTP) con un servidor de acceso a bases de datos. Este servidor traduce el protocolo de red a uno de base de datos específicos de la marca. No necesita instalación en cliente. - Nivel 4, Controlador JDBC de protocolo nativo en Java puro: Está formada por controladores de Java puro que hablan el protocolo de la base de datos específico de la marca del servidor de bases de datos que se haya designado para servir de interfaz. No necesita instalación en cliente. En la actualidad, la mayoría de los fabricantes (o en el caso de Open Source, las comunidades de desarrolladores) de DBMS proporcionan un driver JDBC de nivel 3 ó 4, que son los tipos de conexiones más veloces y eficientes. Cabe destacar que siempre estamos hablando de ―entornos desconectados‖. Esto significa que siempre que se necesite acceder a una base de datos, realizaremos una conexión, ejecutaremos las sentencias SQL necesarias, y una vez finalizadas las operaciones, nos desconectamos. Esto es posible ya que los DBMS están preparados para soportar una limitada cantidad de conexiones simultaneas, por lo tanto trabajar con un entorno conectado, en donde la aplicación abre la conexión al iniciar el programa y la cierra cuando se cierra el mismo, mantiene una conexión ocupada durante toda la ejecución de la aplicación, lo que no permite que se pueda utilizar dicha conexión en los intervalos ociosos.

-3-

Establecer una conexión Conexión del tipo 1 Para establecer una conexión de tipo 1, puente JDBC-ODBC, se debe configurar inicialmente el Data Source Name mediante ODBC. Una vez hecho esto, ya se lo puede utilizar desde una aplicación Java. Objetos a utilizar java.sql.Connection: Representa una conexión a la base de datos java.sql.Driver: Interfase que deben implementar los distintos drivers de los DBMS java.sql.DriverManager: registra los drivers a utilizar y permite obtener las instancias de Connection java.sql.Statement: permite realizar consultas SQL simples java.sql.PreparedStatement: permite realizar consultas SQL precompiladas y paramétricas java.sql.CallableStatement: permite realizar ejecutar procedimientos almacenados y funciones del DBMS java.sql.ResultSet: objeto que almacena los datos retornados luego de una consulta java.sql.ResultSetMetaData: permite utilizar los nombres de las columnas utilizados en el ResultSet java.sql.SQLException: Tipo de Exception que es lanzado por los objetos del paquete java.sql al producirse un error Los pasos a seguir dentro de la aplicación son los siguientes: 1. Poner en contexto el driver específico de la conexión a utilizar Para poder utilizar una conexión, necesita cargar el driver en el código. Esto lo hace mediante la siguiente línea:

Class.forName(―sun.jdbc.odbcJdbcOdbcDriver‖); 2. Obtener una conexión Con el driver ya cargado en el contexto, procede a obtener una conexión a su DSN. Para realizar la conexión necesita 3 parámetros, la cadena de conexión, el usuario y el password. La cadena de conexión le indica al driver el tipo de conexión junto con el nombre del Data Source ODBC al que quiere acceder. Para conexiones del tipo 1, la cadena de conexión es la siguiente:

String url=‖jdbc:odbc:MiDSN‖; String usuario=‖usuario‖; String password=‖password‖; Connection con=DriverManager.getConnection(url,usuario,password); 3. Crear una sentencia La ejecución de las sentencias necesita por lo menos una instancia de Statement, PreparedStatement o CallableStatement.

Statement stm=con.createStatement();

--

4. Ejecutar la sentencia Si la consulta SQL devuelve un conjunto de datos se utiliza:

String consulta=‖select * from personas‖; ResultSet rs=stm.executeQuery(consulta); En caso de que sea una actualización de datos mediante INSERT, UPDATE o DELETE, o cualquier operación DDL, se utiliza: String consulta=‖insert into personas (código,nombre) values (‗Carlos‘,‘Perez‘)‖; int res=stm.executeUpdate(consulta); 5. Manipular los resultados La manipulación de los datos se podrá realizar siempre que tenga un objeto del tipo ResultSet. Lo utilizar conjuntamente con un objeto del tipo ResultSetMetaData. Por Ejemplo: ResultSetMetaData rsmt=rs.getMetaData(); int numCols=rsmt. getColumnCount(); Vector tabla=new Vector(); Vector filas=new Vector (); for(int i=1;i...


Similar Free PDFs