"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
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.
DBMS: Un 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.
DRIVER: Controlador,
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.
PROTOCOLO: Es 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
https://es.slideshare.net/SoniaRamosFernandez/jdbc-79996345