miércoles, 20 de septiembre de 2017

JDBC


                                       "AÑO DEL BUEN SERVICIO AL CIUDADANO"


                          ESCUELA ACADÉMICA INGENIERÍA DE SISTEMAS Y TELEMÁTICA


                                                                    ASIGNATURA

                                              LABORATORIO DE PROGRAMACIÓN II


                                                                           TEMA

                                                                            JDBC


                                                                         AUTORES

                                                     AGUILAR CORDOVA JHAKELIN

                                                   RAMOS FERNÁNDEZ SONIA ELVIRA


                                                                         DOCENTE

                                            ING. MARCO AURELIO PORRO CHULLI


                                                    BAGUA GRANDE-UTCUBAMBA

                                                                        AMAZONAS 

                                                                               2017

   

1       1.CONTENIDO

CAPA DE ACCESO DE DATOS, CREACIÓN

Para la gente del mundo Windows, JDBC es para Java lo que ODBC es para Windows. Windows en general no sabe nada acerca de las bases de datos, pero define el estándar ODBC debe ser capaz de entender y manipular. Los programadores que a su vez deseen escribir programas para manejar bases de datos genéricas en Windows utilizan las llamadas ODBC.
Con JDBC ocurre exactamente lo mismo: es una especificación de un conjunto de clases y métodos de operación que permiten a  cualquier programa Java acceder a sistemas de bases de datos de forma homogénea. Lógicamente, al igual que ODBC, la aplicación de Java debe tener acceso a un driver JDBC adecuado. Este driver es el que implementa la funcionalidad de todas las clases de acceso a datos y proporciona la comunicación entre el API JDBC y la base de datos real.
La necesidad de JDBC, a pesar de la existencia de ODBC, vine dada porque ODBC es un interfaz escrito en lenguaje c, que al no ser un lenguaje portable, haría que las aplicaciones Java también perdiesen la portabilidad. Y además ODBC tiene el inconveniente de que se ha de instalar manualmente en cada máquina; al contrario que los drivers JDBC, que al estar escritos en Java son automáticamente instalables, portables y seguros. 

Toda la conectividad de bases de datos de Java se basa en sentencias SQL, por lo que se hace imprescindible un conocimiento adecuado de SQL para realizar cualquier clase de operación de bases de datos. Aunque, afortunadamente, casi todos los entornos de desarrollo Java ofrecen componentes visuales que proporcionan una funcionalidad suficientemente potente sin necesidad de que sea necesario utilizar SQL, aunque para usar directamente el JDK se haga imprescindible. La especificación JDBC requiere que cualquier driver de JDBC sea compatible con al menos el nivel (de entrada) de ANSI SQL 92 (ANSI SQL 92 Entry Level).

ACCESO DE JDBC A BASES DE DATOS

El API JDBC soporta dos modelos diferentes de acceso a Bases de Datos, los modelos de dos y tres capas.

MODELO DE DOS CAPAS

Este modelo se basa en que la conexión entre la aplicación Java o el applet que se ejecuta en el navegador, se conectan directamente a la base de datos.


Esto significa que el driver JDBC específico para conectarse con la base de datos, debe residir en el sistema local. La base de datos puede estar en cualquier otra máquina y se accede a ella mediante la red. Esta es la configuración de típica Cliente/Servidor: el programa cliente envía instrucciones SQL a la base de datos, ésta las procesa y envía los resultados de vuelta a la aplicación.

MODELO DE TRES CAPAS

En este modelo de acceso a las bases de datos, las instrucciones son enviadas a una capa intermedia entre Cliente y Servidor, que es la que se encarga de enviar las sentencias SQL a la base de datos y recoger el resultado desde la base de datos. En este caso el usuario no tiene contacto directo, ni a través de la red, con la máquina donde reside la base de datos.



Este modelo presenta la ventaja de que el nivel intermedio mantiene en todo momento el control del tipo de operaciones que se realizan contra la base de datos, y además, está la ventaja adicional de que los drivers JDBC no tienen que residir en la máquina Cliente, lo cual libera al usuario de la instalación de cualquier tipo de driver.

CREACION DE JDBC

JDBC existe desde 1996, y fue incluido desde la versión 1.1 de Java de Java Development Kit por JavaSoft, aunque también se hizo disponible para usarse con JDK 1.02. El problema de usar JDBC con el JDK 1.02 es que los usuarios comunes tenían que agregar a su máquina virtual de Java las clases que implementan JDBC, lo cual era muy engorroso y difícil. Es por eso que desde la versión de JDK 1.1, JDBC viene incluido como el paquete java.sql.

Java en un principio era visto como un lenguaje para poner animaciones en Internet, la información almacenada en Sistemas Gestionadores de Bases de Datos (DBMS).
Era además necesario crear una forma sencilla de acceder a bases de datos usando Java, pues de otra manera se dejaría al desarrollador con la tarea de implementar llamadas de bajo nivel al DBMS.

En ese entonces Java era un lenguaje que prometía independencia de plataformas, lo cual lo hacía un ambiente muy atractivo para crear todo tipo de aplicaciones, y el acceso a Base de Datos se convertía cada vez más una necesidad que un lujo.
La gente en JavaSoft se preguntó cómo atraer a los programadores y a las empresas a invertir su dinero y su tiempo en JDBC. Es por esto que decidieron
Crear ventajas competitivas en su producto, mejorando cada vez más la interface de JDBC para que:

1.Los programadores pudieran sentirse como si usaran solamente Java,    permitiéndoles una forma sencilla  de uso del DBMS.

2.  Los programadores se sintieran en contacto directo con el DBMS y con un socket o un proceso en cualquier máquina.

3. La comunicación con la base de datos fuera fácil de programar. Esto es, que las empresas que quisieran hacer controladores JDBC para comunicarse con sus productos lo pudieran hacer en forma sencilla.

4. Fuese flexible, para aceptar configuraciones diferentes de conectividad. Ósea, que la misma aplicación del desarrollador pudiese acceder a varios DBMS a la vez, tal vez hasta en varios hilos simultáneos.

CONFIGURACIÓN DE CONEXIÓN BD CON NETBEANS

NetBeans es una plataforma para el desarrollo de aplicaciones de esritorio usando Java y a un entorno integrado de desarrollo (IDE) desarrollado usando la plataforma NetBeans.
NetBeans permite realizar conexiones a cualquier base de datos que cuente con un driver JDBC y ejecutar comandos SQL sobre la conexión.

1. Clic en la pestaña Services


2.  Clic derecho sobre Database y seleccionamos New Connection


3. En ventana New Connection Wizard seleccione en la lista desplegable driver el correspondiente a Java.


4.   Seleccione el driver que se va a utilizar, clic en el botón aceptar


5.    La siguiente imagen muestra la información necesaria para crear la conexión.

Algunos campos que tenemos que llenar, pero esto si trabajamos con ORACLE:

v  Host: la ip o el nombre de la máquina donde se encuentra instalado Oracle, para este ejemplo se refiere a fn3.oracle.virtual.unidades.edu.co

v  Port: hace referencia al puerto de escucha donde se encuentra instalado Oracle 1521

v  SID: hace referencia al nombre de la escucha de base de datos que se está utilizando prod

v  User Name: El usuario de la base de datos. En este ejemplo, es CSOF5302M1520.

v  Password: La contraseña de la base de datos.

v  JDBC URL: Es la dirección de la base de datos. En todos los casos, la dirección es la siguiente: jdbc:Oracle:thin:@host:port:sid 

6.   Una vez se haya ingresado toda la información haga clic en Finish para crear la conexión a la base de datos.

     Finalmente ya agregada la base de datos y su respectiva conexión, ésta será visible en el árbol de Databases en la pestaña Services tal como se muestra a continuación:

DEFINICION DE JDBC

JDBC es usado para enviar comandos SQL hacia una base de datos relacional, que puede ser Oracle, Informix, SyBase, etc.

JDBC (Java Database Connectivity) es una API que permite la ejecución de operaciones sobre bases de datos desde el lenguaje de programación Java, independientemente del sistema operativo donde se ejecute o de la base de datos a la cual se accede, utilizando el lenguaje SQL del modelo de base de datos que se utilice.

El API JDBC se presenta como una colección de interfaces Java y métodos de gestión de manejadores de conexión hacia cada modelo específico de base de datos. Un manejador de conexiones  hacia un modelo de base de datos en particular es un conjunto de clases que implementan las interfaces Java y que utilizan los métodos de registro para declarar los tipos de localizadores  a base de datos (URL) que pueden manejar. Para utilizar una base de datos particular, el usuario ejecuta su programa junto con la biblioteca de conexión apropiada al modelo de su base de datos, y accede a ella estableciendo una conexión, para ello provee  el localizador a la base de datos y los parámetros de conexión específicos. A partir de allí puede realizar con cualquier tipo de tareas con la base de datos a las que tenga permiso: consulta, actualización, creación, modificación y borrado de tablas, ejecución de procedimientos almacenados en la base de datos, etc. JDBC ofrece el paquete java.sql, en el que existen clases muy útiles para trabajar con bases de datos.

TIPOS DE DRIVER JDBC

Una de las decisiones importantes en diseño, cuando estamos proyectando una aplicación de bases de datos Java, es decidir el driver JDBC que permitirá que las clases JDBC se comuniquen con la base de datos. Los driver JDBC se clasifican en cuatro tipos o niveles:

v  TIPO 1: Puente JDBC-ODBC
v  TIPO 2: Driver API nativo/parte Java
v  TIPO 3: Driver protocolo de red/todo Java
v  TIPO 4: Driver protocolo nativo/todo Java

Entender cómo se construyen los drivers y cuáles son sus limitaciones, nos ayudará a decidir qué driver es el más apropiado para cada aplicación.

v  TIPO 1: PUENTE JDBC-ODBC

El puente JDBC-ODBC es un driver JDBC del tipo 1 que traduce operaciones JDBC en llamadas a la API ODBC. Estas llamadas son entonces cursadas a la base de datos mediante el driver ODBC apropiado. Esta arquitectura se muestra en la siguiente figura:


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

VENTAJAS

A menudo, el primer contacto con un driver JDBC es un puente JDBC-ODBC, simplemente porque es el driver que se distribuye como parte de Java, como el paquete sun.jdbc.odbc.JdbcOdbcDriver.

Además tiene la ventaja de poder trabajar con una gran cantidad de drivers ODBC. Los desarrolladores suelen utilizar ODBC para conectar con bases de datos en un entorno distinto de Java. Por tanto, los drivers de tipo 1 pueden ser útiles para aquellas compañías que ya tienen un driver ODBC instalado en las máquinas clientes. Se utilizará normalmente en máquinas basadas en Windows que ejecutan aplicaciones de gestión. Por supuesto, puede ser el único modo de acceder a algunas bases de datos de escritorio, como MS Access, de Base y Paradox.

En este sentido, la ausencia de complejidad en la instalación y el hecho de que nos permita acceder virtualmente a cualquier base de datos, le convierte en una buena elección. Sin embargo, hay muchas razones por las que se desecha su utilización.

DESVENTAJAS

Básicamente sólo se recomienda su uso cuando se están realizando esfuerzos dirigidos a prototipos y en casos en los que no exista otro driver basado en JDBC para esa tecnología. Si es posible, debemos utilizar un driver  JDBC en vez de un puente y un driver ODBC. Esto elimina totalmente la configuración cliente necesaria en ODBC.

Los siguientes puntos resumen algunos de los inconvenientes de utilizar el driver puente:

Rendimiento: Como puede imaginar por el número de capas y traducciones que tienen lugar, utilizar el puente está lejos de ser la opción más eficaz  en términos de rendimiento.

Utilizando el puente JDBC-ODBC, el usuario está limitado por la funcionalidad se limita a proporcionar acceso a características comunes a todas las bases de datos. No pudiendo hacer uso de las mejoras que cada fabricante introduce en sus productos, especialmente en lo que afecta a rendimiento y escalabilidad.

El driver puente no funciona adecuadamente con applets. El driver ODBC y la interfaz de conexión nativa deben estar ya instalados en la máquina cliente. Por eso, cualquier ventaja de la utilización de applets en un entorno de Intranet se pierde, debido a los problemas de despliegue que conllevan las aplicaciones tradicionales.

La mayoría de los browser no tienen soporte nativo del puente.
Como el puente es un componente opcional del Java 2 SDK Standard Edition, no se ofrece con el navegador. Incluso si fuese ofrecido, sólo los applets de confianza (aquellos que permiten escribir en archivos) serán capaces de utilizar el puente. Esto es necesario para preservar la seguridad de lo applet. Para terminar, incluso si el applet es de confianza, ODBC debe ser configurado en cada máquina cliente.

v  TIPO 2: DRIVER API NATIVO/PARTE JAVA

Los drivers de tipo 2, del que es un ejemplo el driver JDBC/OCI de Oracle, utilizan la interfaz de métodos nativos de Java para convertir las solicitudes de API JDBC en llamadas específicas a bases de datos para RDBMS como SQL Server, Informix, Oracle o Sybase,
como se puede ver en la siguiente figura:


Aunque los drivers de tipo 2 habitualmente ofrecen mejor rendimiento que el puente JDBC-ODBC, siguen teniendo los mismos problemas de despliegue en los que la interfaz de conectividad nativa debe estar ya instalada en la máquina cliente. El driver JDBC necesita una biblioteca suministrada por el fabricante para traducir las funciones JDBC en el lenguaje de consulta específico para ese servidor. Estos drivers están normalmente escritos en alguna combinación de Java y C/C++, ya que el driver debe utilizar una capa de C para realizar llamadas a la biblioteca que está escrita en C.

VENTAJAS

El driver de tipo 2 ofrece un rendimiento significativamente mayor que el puente JDBC-ODBC, ya que las llamadas JDBC no se convierten en llamadas ODBC, sino que son directamente nativas.

DESVENTAJAS

La biblioteca de la base de datos del fabricante necesita iniciarse en cada máquina cliente. En consecuencia, los drivers de tipo 2 muestran menor rendimiento que los de tipo 3 y 4.

Un driver de tipo 2 también 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.

v  TIPO 3: DRIVER PROTOCOLO DE RED/TODO JAVA

Los drivers JDBC de tipo 3 están implementados en una aproximación de tres capas por lo que las solicitudes de la base de datos JDBC están traducidas en un protocolo de red independiente de la base de datos y dirigidas al servidor de capa intermedia. El servidor de la capa intermedia recibe las solicitudes y las envía 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).

La arquitectura en conjunto consiste en tres capas: la capa: la capa cliente JDBC y driver, la capa intermedia y la base o las bases de datos a las que accede.


El driver JDBC se ejecuta en el cliente e implementa la lógica necesaria para enviar a través de la red comandos SQL al servidor JDBC, recibir las respuestas y manejar la conexión.

El componente servidor intermedio puede implementarse como un componente nativo, o alternativamente escrito en Java. Las implementaciones nativas se conectan con la base de datos utilizando bien una biblioteca cliente del fabricante o bien ODBC. El servidor tiene que configurarse para la base o bases de datos a las que se va acceder. Esto puede implicar asignación de números de puerto, configuración de variables de entorno, o de cualquier otro parámetro que pueda necesitar el servidor. Si el servidor intermedio está escrito en Java, puede utilizar cualquier driver en conformidad con JDBC para comunicarse con el servidor de bases de datos mediante el protocolo propietario del fabricante. El servidor maneja varias conexiones con la bases de datos, así como excepciones y eventos de estado que resultan de la ejecución de SQL. Además, organiza los datos para su transmisión por la red a los clientes JDBC.

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 máquinas 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 número de operaciones concurrentes como consultas, búsquedas, etc., son previsibles y escalables y su rendimiento es su principal factor. Hay muchas oportunidades de optimizar la portabilidad, el rendimiento y la escalabilidad.

El protocolo de red puede estar diseñado para hacer el driver JDBC cliente muy pequeño y rápido de iniciar, lo que es perfecto para el despliegue de aplicaciones de Internet.

Además, un driver tipo 3 normalmente ofrece soporte para características como almacenamiento en memoria caché (conexiones, resultados de consultas, etc.), equilibrio de carga, y administración 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 características.

INCONVENIENTES

Los drivers de tipo 3 requieren código específico de bases de datos para realizarse en la capa intermedia.

Además, atravesar el conjunto de registros puede llevar mucho tiempo, ya que los datos vienen a través del servidor de datos.

v  TIPO 4: DRIVER PROTOCOLO NATIVO/TODO JAVA
Este tipo de driver comunica directamente con el servidor de bases de datos utilizando el protocolo nativo del servidor. Estos drivers pueden escribirse totalmente en Java, son independientes de la plataforma y eliminan todos los aspectos relacionados con la configuración en el cliente. Sin embargo, este driver es específico de un fabricante determinado de bases de datos. Cuando la base de datos necesita ser cambiada a un producto de otro fabricante, no se puede utilizar el mismo driver. Por el contrario, hay que reemplazarlo y también el programa cliente, o su asignación, para ser capaces de utilizar una cadena de conexión distinta para iniciar el driver

Estos drivers traducen JDBC directamente a protocolo nativo sin utilizar ODBC o la API nativa, por lo que pueden proporcionar 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 una conectividad nativa, o pasar la solicitud a otro servidor, el rendimiento es bastante bueno. Además, el driver protocolo nativo/todo Java da lugar a un mejor rendimiento que los de tipo 1 y 2.

Además, no hay necesidad de instalar ningún software especial en el cliente o en el servidor. Además, estos drivers pueden bajarse de la forma habitual.

DESVENTAJAS

Con los drivers de tipo 4, el usuario necesita un driver distinto para cada base de datos.


APLICACIONES DE JDBC

En esta sección se presentarán una serie de aplicaciones para ejemplificar los conceptos vistos en el presente trabajo.

La base de datos con la cual se va a trabajar se llama arg_musiteca y se encuentra en el servidor Aragorn (aragorn.elo.utfsm.cl). La base de datos se encuentra alojada en un servidor MySQL.

El driver Java-MySQL se puede descargar desde aquí:


Para poder usar el driver usar el driver se debe configurar la variable de entorno CLASSPATH de la siguiente forma export CLASSPATH=$HOME/directorio/mysql-conector-java.jar

TestConnection.java: Aplicación que permite comprobar si se puede establecer una conexión exitosa con la base de datos.

Appl 01.java: Aplicación que permite visualizar las tablas existentes dentro de la base de datos.

Appl 02.java: Aplicación que visualiza los discos e intérpretes dentro de la base de datos.

Appl 03.java: Aplicación que permite crear una tabla con tres campos en la base de datos.

Appl 04.java: Aplicación que permite agregar nuevo registro a la nueva tabla creada anteriormente con Appl_03.java.

USO DE JDBC EN APLICACIONES JAVA

USO DE CONTROLADORES DE LAS BD

ü  Clase DriverManager
ü  Permite establecer y gestionar conexiones a las BD
ü  Clase SQLPermission
ü  Proporciona los permisos para poder usar el DriverManager a código en ejecución dentro de un Security Manager (Por ejemplo applets)
ü  Interfaz Driver
ü  Métodos para registrar y conectar controladores basados en tecnología JDBC
ü  ClaseDriverPropertyInfo
ü  Propiedades de un controlador

INTERFAZ CON LA APLICACIÓN

ü  Envío de instrucciones SQL  a la BD
ü  Connection
ü  Métodos para crear instrucciones y para gestionar conexiones y sus propiedades
ü  Statement
ü  Permite enviar instrucciones a la BD
ü  PreparedStatement
ü  Permite usar instrucciones preparadas o SQL básicas
ü  CallableStatement
ü  Llamada a procedimientos almacenados en la BD

                 INTERFAZ CON LA APLICACIÓN

ü Correspondencia de tipos SQL con clases e interfaces de Java
ü Array        SQL ARRAY
ü Blob         SQL BLOB
ü Clob         SQL CLOB
ü Date         SQL DATE
ü NClob       SQL NCLOB
ü Ref            SQL REF
ü RowId       SQL ROWID
ü Struct        SQL STRUCT
ü SQLXML        SQL XML
ü Time          SQL TIME
ü Timestamp       SQL TIMESTAMP
ü Clase Types       constantes para tipos SQL
ü Correspondencia de tipos SQL definidos por el usuario a Java
ü SQLData
ü SQLInput
ü SQLOutput

                  
SECUENCIA NORMAL:

ü Establecer la conexión con la BD
ü Cargar controladores (si se usa una versión de Java inferior a la 6)
ü Establecer la conexión
ü Crear un objeto Statement para hacer petición a la BD
ü Asociar una sentencia SQL al objeto Statement
ü Proporcionar valores de los parámetros
ü Ejecutar el objeto Statement
ü Procesar los resultados
ü Liberar recursos (cerrar la conexión)
ü Si es necesario, se pueden ejecutar varias instrucciones dentro de una transacción (propiedades ACID) n Abrir transacción
ü Crear y ejecutar instrucciones
ü Procesar resultados n Cerrar transacción
          
               REGISTRAR UN CONTROLADOR

ü Los DriverManager se encargan de gestionar la conexión y todas las comunicaciones con la BD
ü  Necesitan conocer los controladores específicos para las BD que se vayan a utilizar
ü Registro de un controlador para MySQL
ü Utilizar el controlador MySQL Connector/J Disponible en: http://dev.mysql.com/downloads/connector/j
ü Cómo instalarlo: http://dev.mysql.com/doc/refman/5.7/en/connector-j-installing.html
ü El controlador se puede registran con el Class loader de Java n La clase a cargar viene dada en la documentación del controlador

                    try {
                                   Class.forName("com.mysql.jdbc.Driver").newInstance();
                          } catch (Exception ex) {
                         // Tratar el error }

         EJEMPLOS:

         Ejemplo 1: Conexión a una base de datos MySQL y consulta de una tabla.

   import java.sql.*;
   public class EjemploAccesoBD1 {
   public static void main(String[] args) {
        Connection conexion = null;
        try {
            // Cargar el driver
            Class.forName("com.mysql.jdbc.Driver");

            // Se obtiene una conexión con la base de datos.
            // En este caso nos conectamos a la base de datos prueba
            // con el usuario root y contraseña 1 daw
  conexion = DriverManager.getConnection("jdbc:mysql://localhost/prueba", "root", "1 daw");

            // Se crea un Statement, para realizar la consulta
            Statement s = conexion.createStatement();

            // Se realiza la consulta. Los resultados se guardan en el ResultSet rs
            ResultSet rs = s.executeQuery("select * from persona");

            // Se recorre el ResultSet, mostrando por pantalla los resultados.
            while (rs.next()) {
                System.out.println(rs.getInt("Id") + " " + rs.getString(2) + " " + rs.getDate(3));
            }
        } catch (SQLException e) {
            System.out.println(e.getMessage());
        } catch (ClassNotFoundException e) {
            System.out.println(e.getMessage());
        } finally { // Se cierra la conexión con la base de datos.
            try {
                if (conexion != null) {
                    conexion.close();
                }
            } catch (SQLException ex) {
                System.out.println(ex.getMessage());
            }
        }
    }
}
    
      RESUMEN:

Java Database Connectivity (JDBC) es una interfase de acceso a bases de datos estándar SQL que proporciona un acceso uniforme a una gran variedad de bases de datos relacionales. JDBC también proporciona una base común para la construcción de herramientas y utilidades de alto nivel.

Simplemente JDBC hace posible estas tres cosas:

ü       Establece una conexión con la base de datos.
ü       Envía sentencias SQL
ü        Procesa los resultados.

JDBC es un API (Application programming interface) que describe o define una librería estándar para acceso a fuentes de datos, principalmente orientado a Bases de Datos relacionales que usan SQL (Structured Query Language).

JDBC no sólo provee un interfaz para acceso a motores de bases de datos, sino que también define una arquitectura estándar, para que los fabricantes puedan crear los drivers que permitan a las aplicaciones javas el acceso a los datos.

La necesidad de JDBC, a pesar de la existencia de ODBC, viene dada porque ODBC es un interfaz escrito en lenguaje C, que al no ser un lenguaje portable, haría que las aplicaciones Java también perdiesen la portabilidad. Y además, ODBC tiene el inconveniente de que se ha de instalar manualmente en cada máquina; al contrario que los drivers JDBC, que al estar escritos en Java son automáticamente instalables, portables y seguros.



Toda la conectividad de bases de datos de Java se basa en sentencias SQL, por lo que se hace imprescindible un conocimiento adecuado de SQL para realizar cualquier clase de operación de bases de datos. Aunque, afortunadamente, casi todos los entornos de desarrollo Java ofrecen componentes visuales que proporcionan una funcionalidad suficientemente potente sin necesidad de que sea necesario utilizar SQL, aunque para usar directamente el JDK se haga imprescindible. La especificación JDBC requiere que cualquier driver JDBC sea compatible con al menos el nivel «de entrada» de ANSI SQL 92 (ANSI SQL 92 Entry Level).

SUMARY

Java Database Connectivity (JDBC) is an interface for accessing SQL standard databases providing a uniform to a variety of relational database access. JDBC also provides a common basis for building tools and utilities high level.

JDBC just do these three things possible:
v  Establishes a connection to the database.
v  Send SQL statements
v  Process the results.

JDBC is an API (application programming interface) that describes or defines a standard library for accessing data sources, primarily oriented relational databases using SQL (Structured Query Language).
JDBC not only provides an interface to access database engines, but also defines a standard architecture, so that manufacturers can create drivers that allow applications javas access to data.

The need for JDBC, despite the existence of ODBC is given because ODBC is an interface written in C language, not being a portable language, Java applications would also perdiesen portability. And, ODBC has the disadvantage that it has to manually install on each machine; unlike JDBC drivers, that being written in Java they are automatically installable, portable and safe.


All connectivity database is based on Java SQL statements, so it is essential to a proper understanding of SQL to perform any kind of operation databases. Although fortunately almost all Java development environments provide visual components that provide a sufficiently powerful functionality without the need to use SQL, but to use directly the JDK becomes essential. The JDBC specification requires that any JDBC driver supports at least level "input" of ANSI SQL 92 (ANSI SQL 92 Entry Level).

RECOMENDACIONES

v  Elija controlador JDBC adecuado para su aplicación

Hay 4 Typs de controlador JDBC en Java y puede afectar directamente al rendimiento de la capa DAO. utilizar siempre último controlador JDBC si está disponible y prefieren Tipo 4 JDBC nativos .

v  Conexión a la Base de Datos

Para que exista un enlace remoto con la Base de Datos, la aplicación no debe de conectarse directamente a la Base de Datos, sino que mediante los drivers JDBC - ODBC

v  Utilizar procedimientos almacenados

El uso de procedimientos almacenados está permitido en Java. El rendimiento de los procedimientos almacenados puede ser mayor al permitir que el controlador JDBC ejecute SQL estático en vez de SQL dinámico. No cree procedimientos almacenados para cada sentencia SQL individual que ejecute en el programa. No obstante, cuando sea posible, cree un procedimiento almacenado que ejecute un grupo de sentencias SQL.

         CONCLUSIONES

v  Utilizar JDBC implica construir y ejecutar repetidamente sentencias SELECT, INSERT, UPDATE y DELETE.

v  Tenemos que iterar manualmente sobre las propiedades de objetos como ResultSet cada vez que consultemos algo en la base de datos.

v  Tendríamos que gestionar manualmente el orden de las inserciones, actualizaciones y borrados para que no hubiese problemas con la integridad referencial.

         APRECIACIÓN DEL EQUIPO

Podemos apreciar que JDBC es sumamente importante, que juntamente con JAVA interactúan de una manera más eficaz y gracias a esta interface nosotros podemos acceder a una Base de Datos, y proporcionar mediante métodos para actualizar, modificar para actualizar los Datos, en una BD.

         GLOSARIO DE TÉRMINOS

API: La interfaz de programación de aplicaciones, abreviada como API (del inglés: Application Programming Interface), es el conjunto de subrutinas, funciones y procedimientos (o métodos, en la programación orientada a objetos) que ofrece cierta biblioteca para ser utilizado por otro software como una capa de abstracción.

APPLET: Un applet Java es un applet escrito en el lenguaje de programación Java. Losapplets de Java pueden ejecutarse en un navegador web utilizando la Java Virtual Machine (JVM), o en el AppletViewer de Sun.

ODBC: Open DataBase Connectivity (ODBC) es un estándar de acceso a las bases de datos desarrollado por SQL Access Group (SAG) en 1992. El objetivo de ODBC es hacer posible el acceder a cualquier dato desde cualquier aplicación, sin importar qué sistema de gestión de bases de datos (DBMS) almacene los datos.

JDK: Java Development Kit o (JDK), es un software que provee herramientas de desarrollo para la creación de programas en Java. Puede instalarse en una computadora local o en una unidad de red. En la unidad de red se pueden tener las herramientas distribuidas en varias computadoras y trabajar como una sola aplicación.

DBMSUn DBMS es un Sistema Gestor de Bases de Datos Relacionales. Se trata de software capaz de producir, manipular y gestionar bases de datos de tipo relacional.

DRIVERControlador, rutina o programa que enlaza un dispositivo, traducido como "controlador de es el elemento software utilizado en diversos sistemas operativos.

SOCKET: Es también usado como el nombre de una interfaz de programación de aplicaciones (API) para la familia de protocolos de internet TCP/IP, provisto usualmente por el sistema operativo.

URL: Es simplemente la dirección electrónica de una página. Es una cadena de caracteres con la cual se asigna una dirección a cada recurso de Internet.

PROTOCOLOEs donde indicamos a la máquina que protocolo vamos a usar. Un protocolo es, básicamente, un lenguaje que utilizan las máquinas conectadas para comunicarse entre ellas.

TCP: El protocolo TCP es un protocolo orientado a la conexión. Esto significa que antes de poder transmitir información, debe establecerse una conexión entre dos equipos. Para poder establecer varias conexiones utilizando la misma interfaz, el protocolo TCP utiliza un número de 16 bits denominado port o puerto TCP. El conjunto de protocolos TCP/IP dispone también de un protocolo no orientado a la conexión denominado UDP, que transmite la información fragmentada en pequeños paquetes denominados datagramas. Con el objetivo de simplificar el tema, lo dejaremos de lado.

         LINKOGRAFÍA

  DIAPOSITIVAS

https://es.slideshare.net/SoniaRamosFernandez/jdbc-79996345