martes, 13 de septiembre de 2016

JDBC (Java DataBase Connectivity)




Escuela Profesional De Ingeniería De Sistemas Y Telemática

INTEGRANTES:

  • v  Marleni CHUQUIZUTA RAMOS
  • v  Yoseily ALTAMIRANO GUEVARA
DOCENTE: Marco Aurelio PORRO CHULLI






JDBC



1)   CONTENIDO

CAPA DE ACCESO DE DATOS

·         CAPA DE CLIENTE.- está formada por la lógica de la aplicación a la que el usuario final accede directamente mediante una interfaz de usuario. La lógica de la capa de cliente podría incluir clientes basados en navegadores, componentes de java que se ejecuten en un equipo de escritorio o clientes móviles de Java TM Plataform, Micro Edition(plataform J2METM) que se ejecuten en un dispositivo portátil.

·         CAPA DE PRESENTACIÓN.- es la que está formada por la lógica de la aplicación, que prepara datos para su envío a la capa de cliente y procesa solicitudes desde la capa de cliente para su envío a la capa de cliente a la lógica de negocios del servidor. La lógica en la capa de presentación está formada normalmente por componentes de J2EE como, por ejemplo, Java Servlet o los componentes de JSP que preparan los datos para enviarlos en formato HTML o XML, o que reciben solicitudes para procesarlas. Esta capa también puede incluir un servicio de por tal que proporcione acceso personalizado y seguro a los servicios de negocio.

·         CAPA DE ACCESO DE NEGOCIO.- es la que consiste en la lógica que realiza las funciones principales de la aplicación: procesamiento de datos, implementación de funciones de negocios, coordinación de varios usuarios y administración de recursos externos como por ejemplo, base de datos o sistemas heredados. Esta capa suele estar formada por componentes distribuidos de J2EE como, por ejemplo, los objetos Java, los componentes EJB o  los beans conducidos mediante mensajes. Pueden montarse componentes de J2EE individuaes para ofrecer servicios de negocios complejos, como, por ejemplo, un servicio de inventario o uno de cálcilo de impuestos. Los componentes individuales y los ensamblados de servicios se pueden encapsular como servicios web que no estén firmemente acoplados en un modelo de arquitectura orientada a servicios, que se ajuste a los estándares de la interfaz SOAP (sImple Object Access Protocol). Los servicios de negocios también se pueden crear como servidores independientes como, por ejemplo, un servidor de mensajería o un servidor de calendario empresarial.

·         CAPA DE DATOS.-  es la que esta formada por los servicios que proporcionan los datos persistentes utilizados por la lógica de negocios. Los datos pueden ser datos de aplicaciones almacenados en un sistema de administración de base de datos o pueden incluir información de recursos y directorios almacenada en un almacén de datos de protocolo ligero de acceso a directorios (LDAP). Los servicios de datos también pueden incluir alimentación de datos de orígenes externos o datos a los que se puede obtener acceso desde sistemas informáticos heredados.

CONFIGURACION DE CONEXIÓN BD CON NETBEANS
Lo primero que hay que hacer es instalar SQL Server y configurarlo para que se pueda acceder de dos formas (con autenticación SQL Server), esto se pregunta durante la instalación de SQL Server, posteriormente hay que crear un usuario SQL Server. También debemos permitir conexiones remotas. Cumpliendo su compromiso continuo con la interoperabilidad, Microsoft ha lanzado un nuevo controlador de conectividad de base de datos con Java (JDBC). La descarga de la versión 3.0 del Controlador JDBC de SQL Server está disponible para todos los usuarios de SQL Server 200, SQL Server 2000 desde cualquier aplicación Java, servidor de aplicaciones o subprograma habilitado para Java. Se trata de un controlador JDBC de tipo 4 que proporciona conectividad a bases de datos mediante las interfaces de programación de aplicaciones (API) JDBC estándar disponibles en Java Plataform, Enterprise Edition 5 y ediciones superiores. Esta versión del controlador JDBC es compatible con JDBC 4.0 y se ejecuta en el kit de desarrollo de Java(JDK) versión 5.0 o posteriores. Se ha probado con los principales servidores de aplicaciones, como IBM WebSphere y SAP NetWeaver.

DEFINICION

JDBC (Java DataBase Connectivity) es un API de Java que permite al programador ejecutar instrucciones en lenguaje estándar de acceso a Bases de Datos, SQL (Structured Query Language, lenguaje estructurado de consultas), que es un lenguaje de muy alto nivel que permite crear, examinar, manipular y gestionar Bases de Datos relacionales. Para que una aplicación pueda hacer operaciones en una Base de Datos, ha de tener una conexión con ella, que se establece a través de un driver, que convierte el lenguaje de alto nivel a sentencias de Base de Datos. Es decir, las tres acciones principales que realizará JDBC son las de establecer la conexión a una base de datos, ya sea remota o no; enviar sentencias SQL a esa base de datos y, en tercer lugar, procesar los resultados obtenidos de la base de datos.


https://www.youtube.com/watch?v=xEOmGzYvsgg

TIPOS DE JDBC
Una de las decisiones importantes en el 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:
  • Tipo 1: Puente JDBC-ODBC
  • Tipo 2: Driver API nativo/parte Java
  • Tipo 3: Driver protocolo de red/todo Java
  • Tipo 4: Driver protocolo nativo/todo Java
Entender cómo se construyen los drivers y cuales son sus limitaciones, nos ayudará a decidir qué driver es el más apropiado para cada aplicación.

Tipo 1: Driver 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, dBase 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 del driver elegido. Es más, dicha 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 los applet. Para terminar, incluso si el applet es de confianza, ODBC deve ser configurado en cada máquina cliente.

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 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 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 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.

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 cliente JDBC y driver, la capa intermedia y la base o las bases de datos a las que se 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 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 a 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 JDBC maneja varias conexiones con la base 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.
Tipo 4: Driver protocolo nativo/todo Java
Son drivers suministrados por él es la mejor solución y fabricante de la base de datos y su está escrito totalmente en java (100%) finalidad es convertir llamadas JDBC en un protocolo de red(usando sockets) comprendido por la base de datos. Es el método más eficiente de acceso a base de datos.

APLICACIONES
Las aplicaciones de ejemplo del controlador JDBC de Microsoft para SQL Server muestran varias características del controlador JDBC. Además, describen las prácticas recomendadas de programación que puede aplicar al usar el controlador JDBC con base de datos de SQL Server. Todas las aplicaciones de ejemplo se incluyen en archivos de código *.java que se pueden compilar y ejecutar en el equipo local, y se encuentran en varias subcarpetas de la siguiente ubicación:<directorio de instalación de> sqljdbc_<versión><idioma> muestras. En los temas de esta sección se describe cómo configurar y ejecutar las aplicaciones de ejemplo, y se incluye una descripción de lo que demuestran

USO DE JDBC EN APLICACIONES JAVA
Es un controlador de base de datos que permite la conexión mediante programación a una base de datos. Debe utilizar la conexión como un puente entre la aplicación y la base de datos real. Visual J# incluye una implementación de JDBC sobre OBDC(puente JDBC-OBDC). Este puente puede permitir a la aplicación conectarse con cualquier servidor de bases de datos que tenga instalado el controlador OBDC en el equipo cliente con visual J#. El primer paso establece un nombre de origen de datos (DSN) para administrar las credenciales de contraseñas e identificar de usuario en la base de datos de access denominada Northwind. El segundo paso utiliza el DSN y JDBC OBDC Driver para conectarse a la base de datos y devolver datos. El código denomina al controlador, Class.ForName(“Com.ms.jdbc.obdc.jdbcObdcDriver”), y genera una cadena de conexión que denomina al DSN con las credenciales de servidor y de autenticación, del siguiente modo: Stringurl=”jdbc.obdc:vbuetools”; En el ultimo ejemplo se ejecuta la consulta. Si se utiliza la instrucción while(rs.next()), el codigo recorre los conjuntos de resultados y obtiene los datos. Una vez imprimidos los datos en consola, la instrucción con.close() cierra el conjunto de registros así como la conexión con la base de datos.

EJEMPLOS

  • ü  El siguiente código muestra el acceso a una base de datos y ejecución de consultas de selección y acción a una base de datos utilizando un driver JDBC Codigo:c:javaJDBC1Bd.java La recuperación de datos se realiza a la tabla ‘contactos’ de la base de datos ‘agenda’ conociendo previamente la estructura de la tabla ‘contactos’:id,nombre, ciud_id, email, teléfono

  • Obtener el número de versión del driver JDBC.

import java.sql.*;
import oracle.jdbc.driver.*;

class driver_ver
{
public static void main (String args [])
throws SQLException
{
// Carga el driver JDBC Oracle

DriverManager.registerDriver
(new oracle.jdbc.driver.OracleDriver());
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:pc/pc@127.0.0.1:1521:pc");

// Crea objeto DatabaseMetaData de Oracle
DatabaseMetaData meta = conn.getMetaData ();

// Obtiene la info del driver:
System.out.println("La version del driver JDBC es: " + meta.getDriverVersion());
}
}

2)    RESUMEN

JDBC

JDBC es un lenguaje de muy alto nivel que permite crear, examinar, manipular y gestionar Bases de Datos relacionales. Para que una aplicación pueda hacer operaciones en una Base de Datos, ha de tener una conexión con ella, que se establece a través de un driver, que convierte el lenguaje de alto nivel a sentencias de Base de Datos.


CAPA DE ACCESO DE DATOS

·         CAPA DE CLIENTE.- está formada por la lógica de la aplicación a la que el usuario final accede directamente mediante una interfaz de usuario.

·         CAPA DE PRESENTACIÓN.- es la que está formada por la lógica de la aplicación, que prepara datos para su envío a la capa de cliente y procesa solicitudes desde la capa de cliente para su envío a la capa de cliente a la lógica de negocios del servidor.

·         CAPA DE ACCESO DE NEGOCIO.- es la que consiste en la lógica que realiza las funciones principales de la aplicación: procesamiento de datos, implementación de funciones de negocios, coordinación de varios usuarios y administración de recursos externos como por ejemplo, base de datos o sistemas heredados.

·         CAPA DE DATOS.-  es la que está formada por los servicios que proporcionan los datos persistentes utilizados por la lógica de negocios.

TIPOS DE JDBC

Los driver JDBC se clasifican en cuatro tipos o niveles:

Tipo 1: Driver puente JDBC-ODBC
El puente JDBC-ODBC es un driver JDBC del tipo 1 que traduce operaciones JDBC en llamadas a la API ODBC

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:
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.
Tipo 4: Driver protocolo nativo/todo Java
Es el método más eficiente de acceso a base de datos.

USO DE JDBC EN APLICACIONES JAVA
Es un controlador de base de datos que permite la conexión mediante programación a una base de datos. Debe utilizar la conexión como un puente entre la aplicación y la base de datos real.

APLICACIONES
Las aplicaciones de ejemplo del controlador JDBC de Microsoft para SQL Server muestran varias características del controlador JDBC. Además, describen las prácticas recomendadas de programación que puede aplicar al usar el controlador JDBC con base de datos de SQL Server.

3)   SUMMARY

JDBC

JDBC is a very high-level language to create, examine, manipulate and manage 
relational databases. For an application to perform operations in a database, you 
must have a connection to it, which is established through a driver that converts 
high-level language statements database.
 
DATA ACCESS LAYER
 
LAYER Customer.- is formed by the application logic to which the end user 
accesses directly using a user interface.
 
LAYER is Presentation.- which is formed by the application logic that prepares 
data for delivery to the client tier and processes requests from the client tier for 
delivery to the client layer to the business logic server.
 
BUSINESS ACCESS LAYER.- is consisting of the logic that performs the main 
functions of the application: processing data, implementing business functions, 
coordination of multiple users and managing external resources such as database 
or legacy systems.
 
LAYER is data.- which consists of services that provide persistent data used by 
business logic.
 
TYPES JDBC
 
The JDBC driver are classified into four types or levels:
 
Type 1: JDBC-ODBC Bridge Driver
The JDBC-ODBC Bridge is a JDBC driver that translates Type 1 JDBC operations 
on the ODBC API calls
 
Type 2: Native Driver API / Java part
The drivers of type 2, which is an example JDBC / OCI Oracle driver, use the interface 
native Java methods to convert applications JDBC API specific calls to databases 
RDBMS such as SQL Server, Informix, Oracle or Sybase, as you can see in the figure 
below:
 
Type 3: Driver network protocol / all Java
The type 3 JDBC drivers are implemented in a three-tier approach so that requests 
for the JDBC database are translated in a protocol independent network database 
server and addressed to the intermediate layer.
 
Type 4: Driver native protocol / all Java
It is the most efficient method of accessing database.
 
JDBC USING JAVA APPLICATIONS
It is a database driver that allows connection programmatically to a database. You 
must use the connection as a bridge between the application and the actual database.
 
APPLICATIONS
The sample applications Microsoft JDBC Driver for SQL Server show various features 
of the JDBC driver. In addition, they describe the recommended programming practices
 that may apply when using the JDBC driver database with SQL Server.

4)    RECOMENDACIONES
El diseño y desarrollo de las nuevas aplicaciones conduce a la minimización del ingreso de datos por parte del usuario; además el lenguaje de desarrollo que se utiliza está orientado a facilitar la ejecución en cualquier Sistema Operativo, ya que se ajusta a los estándares reconocidos, que permite la flexibilidad de los cambios.
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.

5)    CONCLUSIONES
JDBC se puede utilizar para conectarse a bases de datos relacionales de los programas de Java

JBDC puede crear una dependencia sin querer a un proveedor de base de datos específica

Los drivers JDBC y ODBC establecen la estructura para el diseño y generación de conexiones y accesos a Base de Datos remotas; por lo que facilita el desarrollo de nuevas aplicaciones que la Universidad desee implementar en un futuro, orientados con este fin.

6)    APRECIACIÓN DEL EQUIPO

El JDBC es una aplicación no al 100% Java de manera que ademas puede establecer  y mantener consultas a una fuente de datos y procesa los resultados para que así nos dé más facilidad de manejar grandes cantidades de datos en entidades grandes sin problemas de tiempo.

7)    GLOSARIO


  •    Northwind: es una conocida base de datos de ejemplo de Microsoft que se utiliza en multitud de libros, cursos y artículos para ilustrar todo tipo de conceptos de acceso a datos. Esta base de datos simula la información acumulada del día a día en una empresa ficticia llamada Northwind Traders.
  • Driver: Controlador, rutina o programa que enlaza un dispositivo periférico al sistema operativo.
  • Applet: Un componente que se ejecuta generalmente en un Web browser, pero puede ser ejecutado en una variedad de otras aplicaciones o dispositivos que soporten el modelo de programación del applet.


8)    LINKOGRAFÍA