“AÑO DEL BUEN SERVICIO AL CIUDADANO”
INTREGRANTES:
v Sandrita Rafael Estela.
v Karen Juneth Soto Horna
DOCENTE:
Marco Aurelio Porro Chulli.
CARRERA:
Ing. Sistemas y Telemática.
GRUPO:
Drivers
TEMA:
JDBC
2017
JDBC
1. CONTENIDO
[
Capa de acceso de datos, creación:
a) Capa de acceso de datos:
Ø
Open Database Connectivity (categoría Acceso a bases de datos): Sistema de gestión de bases de datos
(DBMS) almacene los datos. ODBC logra esto al insertar una capa intermedia
(CLI) denominada nivel de Interfaz de Cliente 4 KB (529 palabras)
Ø
Data Access Object (categoría Acceso a bases de datos): En software de computadores, un Data
Access Object (DAO, Objeto de Acceso a Datos) es un componente de software que
suministra una interfaz común entre 2 KB (281 palabras)
Ø
Apache HBase (categoría Sistemas de gestión de bases de datos libres): Las bases de datos SQL clásicas, sin
embargo, el proyecto Apache Phoenix proporciona una capa de SQL para Hbase así
como acceso vía el API JDBC que puede 5 KB (512 palabras)
Ø IBATIS (sección La capa de Abstracción): En Java se utiliza JDBC; iBATIS utiliza
su framework SQL-MAP (ibatis-sqlmap.jar). La capa de Driver se ocupa de la
comunicación con la propia Base de 6 KB (723 palabras)
Ø
GvSIG (categoría Software libre programado en Java): Acceso a servicios remotos: OGC (WMS,
WFS, WCS, WFS-T, WPS), ArcIMS, Ecwp. Acceso a bases de datos y tablas: PostGIS,
MySQL, ArcSDE, Oracle, JDBC, CSV 11 KB (1224 palabras)
Ø
Plataforma G (categoría Bases de datos): Una de las fuentes de información (capa
de datos) es recubierta por una interfaz (wrapper), el cual permitirá la extracción,
acceso y consulta de la información 17 KB (2530 palabras)
b) Creación:
Creación de la
Capa de Acceso a Datos; al trabajar con datos, una opción es incrustar la
lógica específica de datos directamente dentro de la capa de presentación. Sin
embargo, lo recomendable es separar la lógica de acceso a datos de la capa de
presentación.
Esta capa
separada se conoce como DAL, que se implementa típicamente como un proyecto de
Biblioteca de Clases. En principio, esta arquitectura de capas nos permite
manejar de forma aislada los elementos relacionados con una u otra sin afectar
ambas.
Todo el código
específico al origen de datos, relacionado con los comandos Select, Insert, Update,
y Delete debe ubicarse en la DAL. La capa de presentación sólo debe hacer
llamadas a la DAL para cualquier
petición de datos.
[
Configuración de conexión BD con Netbeans:
Configuración de
MySQL y de SQL Server para poder utilizar conexiones mediante el driver JDBC; ambos
DBMS permiten la conexión mediante controladores Java puro de tipo JDBC, Sin
embargo, la instalación de SQL Server es más complicada que la de MySQL, al
menos para poder utilizar el JDBC.
Configurar SQL
Server Express para poder usar el Driver JDBC java:
PASO 1:
SQL Server se
instala por omisión con la Autenticación de Windows. Ocurre que el controlador
JDBC; requiere que se utilice la Autenticación de SQL Server, ya que esta
requiere de usuario y contraseña.
Por lo tanto,
hay que cambiar la configuración para que la Autenticación o instalarlo de modo
que sea mixta: Autenticación para Windows y Autenticación de SQL Server
En mi servidor se puede ver que admite
ambos tipos de autenticación:
Autenticación de Windows: no pide
usuario y contraseña porque utiliza la del Sistema Operativo.
Autenticación de SQL Server: va a pedir
el usuario administrador (sa) y su contraseña. Se puede configurar al instalar
o con posterioridad
Puede apreciarse que la conexión ha sido
exitosa a través de la Autenticación de SQL Server. De lo contrario, si no está
configurada, no se podrá conectar.
PASO 2:
Una vez que se tiene configurada la
Autenticación de SQL Server hay que ejecutar el SQL Server Configuration
Manager.
Allí podemos ver distintos servicios,
tienen que estar iniciados dos servicios, como muestra la imagen (el agente no
es necesario)
PASO 3:
Hay que configurar la capa de red, de
modo que SQL Server acepte conexiones de red TCP/IP, una vez hecho esto hay que
reiniciar estos servicios.
Tienen que estar
los tres protocolos habilitados. Ir a TCP/IP
Al final de la lista de
Direcciones IP en IPALL colocar el número de puerto 1433, Reiniciar este
servicio.
[
Definición de JDBC, tipos. Aplicaciones:
El paquete
actual de JDK incluye JDBC y el puente JDBC-ODBC. Estos paquetes son para su
uso con JDK 1.0
JDBC es el API
para la ejecución de sentencias SQL. (Como punto de interés JDBC es una marca
registrada y no un acrónimo, no obstante, a menudo es conocido como “Java
Database Connectivity”). Consiste en un
conjunto de clases e interfases escritas en el lenguaje de programación Java.
JDBC suministra un API estándar para los desarrolladores y hace posible
escribir aplicaciones de base de datos usando un API puro Java.
Usando JDBC es
fácil enviar sentencias SQL virtualmente a cualquier sistema de base de datos.
En otras palabras, con el API JDBC, no es necesario escribir un programa que
acceda a una base de datos Sybase, otro para acceder a Oracle y otro para
acceder a Informix. Un único programa escrito usando el API JDBC y el programa
será capaz de enviar sentencias SQL a la base de datos apropiada. Y, con una
aplicación escrita en el lenguaje de programación Java, tampoco es necesario
escribir diferentes aplicaciones para ejecutar en diferentes plataformas. La
combinación de Java y JDBC permite al programador escribir una sola vez y
ejecutarlo en cualquier entorno.
Java, siendo
robusto, seguro, fácil de usar, fácil de entender, y descargable
automáticamente desde la red, es un lenguaje base excelente para aplicaciones
de base de datos.
JDBC expande las
posibilidades de Java. Por ejemplo, con Java y JDBC API, es posible publicar
una página web que contenga un applet que usa información obtenida de una base
de datos remota. O una empresa puede usar JDBC para conectar a todos sus
empleados (incluso si usan un conglomerado de máquinas Windows, Macintosh y
UNIX) a una base de datos interna vía intranet. Con cada vez más y más
programadores desarrollando en lenguaje Java, la necesidad de acceso fácil a
base de datos desde Java continúa creciendo.
Tipos de drivers
JDBC: Los drivers son
susceptibles de clasificarse en una de estas cuatro categorías.
1.- Puente JDBC-ODBC más driver ODBC: El producto de JavaSoft suministra
acceso vía drivers ODBC. Nótese que el código binario ODBC, y en muchos casos
el código cliente de base de datos, debe cargarse en cada máquina cliente que
use este driver. Como resultado, este tipo de driver es el más apropiado en una
red corporativa donde las instalaciones clientes no son un problema mayor, o
para una aplicación en el servidor escrito en Java en una arquitectura en
tres-niveles.
2.- Driver Java parcialmente Nativo: Este tipo de driver convierte llamadas
JDBC en llamadas del API cliente para Oracle, Sybase, Informix, DB2 y otros
DBMS. Nótese que como el driver puente, este estilo de driver requiere que
cierto código binario sea cargado en cada máquina cliente.
3.- Driver Java nativo JDBC-Net: Este driver traduce llamadas JDBC al
protocolo de red independiente del DBMS que después es traducido en el
protocolo DBMS por el servidor. Este middleware en el servidor de red es capaz
de conectar a los clientes puros Java a muchas bases de datos diferentes. El
protocolo específico usado dependerá del vendedor. En general esta es la
alternativa más flexible.
4.- Driver puro Java y nativo-protocolo: Este tipo de driver convierte llamadas
JDBC en el protocolo de la red usado por DBMS directamente. Esto permite
llamadas directas desde la máquina cliente al servidor DBMS y es la solución
más práctica para accesos en intranets. Dado que muchos de estos protocolos son
propietarios, los fabricantes de bases de datos serán los principales
suministradores.
Hay una gran
variedad de arquitecturas posibles para las aplicaciones de bases de datos
(dependiendo de los requisitos de la aplicación). Elegir el driver JDBC
correcto es importante porque tiene un impacto directo en el rendimiento de la
aplicación.
El puente JDBC-ODBC
se podría considerar únicamente como una solución transitoria ya que no soporta
todas las características de Java, y el usuario está limitado por la
funcionalidad del driver ODBC elegido. Las aplicaciones a gran escala
utilizarán drivers de los tipos 2, 3 o 4.
En las
aplicaciones de Intranet es útil considerar los driver de tipo 2, pero estos
drivers, como el puente ODBC, necesitan que ese código se instale en cada
cliente. Por lo tanto, tienen los mismos problemas de mantenimiento que el
driver puente JDBC-ODBC. Sin embargo, los drivers de tipo 2 son más rápidos que
los de tipo 1 porque se elimina el nivel extra de traducción. Como los drivers
de tipo 3 y de tipo 4 muestran mejor rendimiento que los drivers de tipo 2, la
tendencia se dirige hacia un driver Java puro más robusto.
Para las
aplicaciones relacionadas con Internet, no hay otra opción que utilizar drivers
del tipo 3 o del tipo 4. Los drivers de tipo 3 son los que mejor funcionan con
los entornos que necesitan proporcionar conexión a gran cantidad de servidores
de bases de datos y a bases de datos heterogéneas.
Los drivers de
tipo 3 funcionan con aplicaciones intensivas de datos multiusuario, en las que
se espera un alto número de operaciones concurrentes de datos, siendo el
rendimiento y la escalabilidad el principal factor. El servidor puede
proporcionar facilidades de registro y de administración, características del
equilibrio de carga y puede soportar cachés de catálogo y de consultas.
Los drivers de
tipo 4 están generalmente recomendados para aplicaciones que requieren un
acceso rápido y eficiente a bases de datos. Como estos drivers traducen
llamadas JDBC directamente a protocolo nativo sin utilizar ODBC o el API
nativos, pueden aportar acceso a bases de datos de alto rendimiento.
v Testconnection.java : Aplicación que permite comprobar si se
puede establecer una conexión exitosa con la base de datos.
v Appl_01.java : Aplicación que permite visualizar las
tablas existentes dentro de la base de datos.
v Appl_04.java : Aplicación que permite agregar nuevo
registro a la nueva tabla creada anteriormente con appl_03.java.
[
Uso de las clases class, Connection, DriverManager:
a)
Class
b)
Connection
Un objeto
Connection representa una conexión
con una base de datos. Una sesión de conexión
incluye
las sentencias SQL que se ejecutan y los resultados que son devueltos después
de la conexión. Una única aplicación puede tener una o más conexiones con una única base de datos, o puede tener
varias conexiones con varias bases de datos diferentes.
La forma estándar de establecer una conexión a la base de datos es mediante la
llamada al método DriverManager.getConnection. Este método toma una cadena que contiene una URL. La clase DriverManager, referida como la capa de gestión JDBC, intenta localizar un driver que pueda conectar con la
base de datos representada por la URL. La clase DriverManager mantiene una lista de clases Driver registradas y cuando se llama
al método getConnection, se chequea con cada driver de la lista hasta que encuentra
uno que pueda conectar con la base de datos especificada en la URL. El método
connect de Driver usa esta URL para establecer la conexión.
Un usuario puede evitar la capa de gestión
de JDBC y llamar a los métodos de
Driver directamente. Esto puede ser útil en el caso raro que dos drivers puedan conectar con la base de datos y el
usuario quiera seleccionar uno explícitamente. Normalmente, de cualquier modo, es
mucho más fácil dejar que la clase DriverManager maneje la apertura de la conexión.
c) DriverManager
La clase DriverManager implementa la capa de gestión de JDBC, y trabaja como intermediaria entre el usuario
y los drivers. Guarda la lista
de los drivers que están disponibles y establece
la conexión entre la
base de datos y el driver apropiado. Además, la clase DriverManager se ocupa de cosas cómo gestionar
los límites de tiempo de ‘login’ en el driver y de la
salida de los mensajes de traza y
log.
Para aplicaciones
simples, el único método en esta clase
que necesita un programador general para su
uso directamente es DriverManager.getConnection. Como su nombre indica, este método
establece una conexión con la base de datos. JDBC permite al usuario llamar a los métodos de DriverManager getDriver, getDrivers y registerDriver así como al método de Driver connect, pero en la mayoría de los casos es preferible
dejar que la clase DriverManager gestione los detalles al establecer la conexión.
La clase DriverManager mantiene una lista de clases
disponibles que han sido registrados mediante el método DriverManager.registerDriver. Todas las clases Driver deben
escribirse con una sección estática que cree una instancia de la clase y luego la registre
en la clase DriverManager cuando se cargue.
Además, el usuario normalmente no debería llamar a
DriverManager.registerDriver directamente;
debería llamarse automáticamente por el driver cuando esté se
carga.
Una vez que la clase Driver ha sido cargada y registrada con la clase DriverManager, se está en condiciones de establecer la conexión con la base de
datos. La solicitud de la conexión
se realiza mediante una llamada al método
DriverManager.getConnection, y DriverManager testea los drivers registrados para ver si puede establecer la conexión.
A veces puede darse el caso de que más de un
driver JDBC pueda establecer la conexión para una URL dada. Por ejemplo, cuando conectamos con una base de datos remota, podría ser posible usar un driver puente JDBC-ODBC, o un driver JDBC de protocolo genérico
de red, o un driver suministrado por el vendedor.
[
Ejemplos:
Ejemplo1:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;
import javax.swing.JLabel;
import org.apache.log4j.Logger;
/**
*
*
@author Ivan Salas Corrales <http://programandoointentandolo.com/>
*/
public class CreaCuenta implements
ActionListener {
private Logger log = Logger.getLogger(CreaCuenta.class);
private Ventana v;
private Connection cn;
private PreparedStatement pstBuscarCodigo;
private PreparedStatement pstInsertarCuenta;
public
CreaCuenta(Ventana v) {
this.v = v;
try {
// Driver para conectar con MySQL
Class.forName("com.mysql.jdbc.Driver");
// Conexion con la base de datos
cn =
DriverManager.getConnection("jdbc:mysql://localhost:3306/cuentas",
"root", "");
String sqlBusqueda = "SELECT
codigo FROM cuentas WHERE codigo=?";
pstBuscarCodigo =
cn.prepareStatement(sqlBusqueda);
String sqlNuevaCuenta =
"INSERT INTO cuentas VALUES (?,?,?,?)";
pstInsertarCuenta =
cn.prepareStatement(sqlNuevaCuenta);
} catch (SQLException ex) {
log.error("Error " +
ex.getErrorCode() + ": " + ex.getMessage());
} catch (ClassNotFoundException ex) {
log.error("No se encontro el Driver MySQL para
JDBC.");
}
}
@Override
public void actionPerformed(ActionEvent e) {
String codigo = v.getTextCodigo().getText();
String nombre = v.getTextNombre().getText();
String email = v.getTextEmail().getText();
double saldo = (double) v.getTextSaldo().getValue();
JLabel lbMensaje
= v.getLbMensaje();
try {
pstBuscarCodigo.setString(1,
codigo);
// Si el codigo no esta en la bd se
añade la cuenta
ResultSet rs = pstBuscarCodigo.executeQuery();
if (!rs.next()) {
pstInsertarCuenta.setString(1, codigo);
pstInsertarCuenta.setString(2,
nombre);
pstInsertarCuenta.setString(3, email);
pstInsertarCuenta.setDouble(4,
saldo);
pstInsertarCuenta.executeUpdate();
lbMensaje.setText("Cuenta
agregada correctamente");
} else {
lbMensaje.setText("El
codigo indicado ya esta en la base de datos");
}
} catch (SQLException ex) {
log.error("Error " +
ex.getErrorCode() + ": " + ex.getMessage());
}
}
}
EJEMPLO 2:
Statement MyStmt = con.createStatement();
MyStm.executeUpdate("CREATE TABLE Sells " + "(bar VAR
beer VARCHAR(40), price REAL)"
);
MyStm.executeUpdate("INSERT INTO Sells " + "VALUES ('Bar Of Foo', 'BudLite', 2.00)"
);
String sqlString = "CREATE TABLE Bars " +"(name VARCHAR(40), address VARCHAR(80), license INT)" ; MyStm.executeUpdate(sqlString);
Ponga especial atención al espacio en blanco que sigue después de
"INSERT INTO Sells " evita que este string se pegue a "VALUES".
EJEMPLO 3:
Statement
stmt = con.createStatement(); String bar, beer ;
float
price ;
ResultSet
rs = stmt.executeQuery("SELECT * FROM Sells");
while (
rs.next() ) {
bar = rs.getString("bar");
beer = rs.getString("beer"); price = rs.getFloat("price");
System.out.println(bar + "
sells " + beer + " for "
+ price + " Dollars.");
}
2. RESUMEN
JDBC es el
funcionamiento básico de tecnología JAVA de la base de datos, no es la única
tecnología; Hibernate Técnica, TopLink, etc. o base de datos Mapping
operaciones se construyen en la parte superior de la tecnología JDBC, en
términos prácticos, su rendimiento y JDBC es una gran diferencia, pero a la
inversa, si JDBC con el mal, no es tan bueno como es hibernar.
En realidad,
define un conjunto estándar de interfaces para operar la base de datos. Con el
fin de permitir a Java para operar la base de datos, usted debe haber dado
cuenta de la JDBC clase estas interfaces, diferentes proveedores de bases de
datos con el fin de hacer que el lenguaje Java puede operar su propia base de
datos, JDBC proporciona para la implementación de la interfaz, estas clases que
implementan las interfaces JDBC pelean en un paquete frasco, lo que solemos ver
la base de datos impulsada.
Debido a los
diferentes mecanismos de datos de las operaciones de base de datos no es lo
mismo, por lo que la realización concreta de JDBC variará; es fácil enviar
sentencias SQL virtualmente a cualquier sistema de base de datos. En otras
palabras, con el API JDBC, no es necesario escribir un programa que acceda a
una base de datos Sybase, otro para acceder a Oracle y otro para acceder a
Informix. Un único programa escrito usando el API JDBC y el programa será capaz
de enviar sentencias SQL a la base de datos apropiada. Y, con una aplicación
escrita en el lenguaje de programación Java, tampoco es necesario escribir
diferentes aplicaciones para ejecutar en diferentes plataformas. La combinación
de Java y JDBC permite al programador escribir una sola vez y ejecutarlo en
cualquier entorno.
3. SUMMARY
JDBC is the basic operation of JAVA
technology database, is not the only technology; Technical Hibernate, TopLink,
etc. Mapping or database operations are built on top of the JDBC technology, in
practical terms, performance and JDBC is a big difference, but conversely, if
JDBC with evil, is not as good as it is hibernating.
Actually, it defines a standard set of
interfaces to operate the database. In order to allow Java to operate the
database, you must have noticed the JDBC class these interfaces, different
providers databases in order to make the Java language can operate your own
database, JDBC provides for the implementation of the interface, these classes
that implement the JDBC interfaces fight in a jar package, we usually see the
database driven.
Due to the different mechanisms of
operations data database is not the same, so the concrete realization of JDBC
vary; It is easy to send SQL statements to virtually any database system. In
other words, with the JDBC API, you need not write a program to access a Sybase
database, another to access Oracle and another to access Informix. A unique
program written using the JDBC API and the program will be able to send SQL
statements to the appropriate database. And a written in the Java programming
language application, it is not necessary to write different applications to
run on different platforms. The combination of Java and JDBC allows the
programmer write once and run in any environment.
4. RECOMENDACIONES
¨ Debido a que la Universidad cuenta con
Sitio Web, esto facilita el desarrollo de nuevas aplicaciones; por lo que los
códigos fuentes de él, deberían estar al alcance de los alumnos, para motivar
el desarrollo de nuevas Aplicaciones Webs. Con este fin, se mantiene un patrón
establecido, tal como mantener un solo tipo de fondo (background), para evitar
que exista demasiadas diferencias en cada aplicación.
¨ 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.
¨ Se recomienda a poner en disposición de
los alumnos de la Universidad la Aplicación de consulta de notas, dado que le
ahorraría costo y tiempo para la obtención de las notas requeridas, desde el
punto de consultas.
¨ 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
« La aplicación fue desarrollada de tal
forma que sea amigable para el usuario; con solo el ingreso del número de
carnet, se despliega las notas del ciclo vigente y existe la opción de ir y
regresar a consultar el historial de notas y el CUM. Al ser desarrollado en
Java existe la ventaja de que la aplicación pueda ejecutarse en cualquier
Sistema Operativo; esto permite a que la aplicación se adapte a cualquier
cambio de estructura que desee generar la Unidad de Informática de la
Universidad.
« La consulta de notas a través del Sitio
HTTP que contiene la Universidad tiene sus beneficios; ya que le ofrece al
alumnado un nuevo servicio, donde podrán consultar sus notas desde su casa o
desde un Cyber Café; esto permitiría a la Universidad ofrecer nuevos servicios
a los alumnos, además de ganar prestigio por estar a la vanguardia con la
tecnología.
« 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
Este paquete
permite conectarse a una base de datos, consultarla o actualizarla usando SQL.
Su manejo es de importancia debido a la frecuencia con que las bases de datos
son usadas hoy.
Así como con
Java se logra independencia de la plataforma, al trabajar con JDBC se logra
además independencia del proveedor de la base de datos. Una dificultad
enfrentada por los desarrolladores de JDBC fue que existen muchos proveedores
de bases de datos cada uno usando su propio protocolo.
Es así como se
acordó el desarrollo de una API Java para SQL, la cual accede la base de datos
vía un administrador de drivers de terceros los cuales se conectan a bases de
datos específicas. Cada proveedor de bases de datos debía generar su
propio driver conectable al administrador de drivers.
7. GLOSARIO DE TERMINOS
§ Sistema de Gestión de Bases de Datos
(DBMS): Aplicación que
permite a los usuarios almacenar, procesar, y recuperar información en una base
de datos
§ Fuente de Datos (DSN): Los datos a los cuales quiere acceder
(como a DBMS) e información para localizar datos (como la ruta o dirección IP)
§ Lenguaje de Consulta Estructurado (SQL): Un lenguaje de programación estándar
que controla e interactúa con una DBMS
§ Aplicación Cliente: La aplicación que solicita datos
(mediante SQL) de una fuente de datos usando ODBC.
§ Query: Recuperación, manipulación, o modificación de datos
desde una fuente de datos enviando instrucciones SQL
§ Tabla: Recolección de datos cuya estructura lógica es en
forma de campos (atributos) y registros, es decir, columnas y filas.
§ Driver o controlador ODBC: Un fichero DLL, fichero conectado
dinámicamente (Windows) que envía una consulta SQL para acceder a datos
almacenados en una base de datos y entregar datos a la aplicación cliente.
§
Interfaces: Esta noción sirve para
señalar a la conexión que se da de manera física y a nivel de utilidad entre
dispositivos o sistemas.
§
Fuente: Se
trata de las instrucciones que un programa informático transmite a una
computadora para que pueda ejecutarse. Dichas instrucciones son líneas de texto
escritas en un lenguaje de programación (una estructura capaz de impartir
instrucciones informáticas a partir de una determinada base.
§
Enlace: La orden vínculos se
encuentra en el menú Editar. La orden sólo puede activarse si el documento
actual contiene, como mínimo, un vínculo.
8. LINKOGRAFÍA
© http://ingteleco.webcindario.com/Java/Apuntes/Tema%2012%20-%20JDBC.pdf
© http://profesores.elo.utfsm.cl/~agv/elo330/2s03/projects/JDBC/index.html
© http://developers.sun.com/product/jdbc/drivers
© http://ingteleco.webcindario.com/Java/Apuntes/Tema%2012%20-%20JDBC.pdf
© http://documents.mx/documents/creacion-de-capa-de-acceso-a-datos.html
© http://www.lsi.us.es/docencia/get.php?id=2145
© https://msdn.microsoft.com/es-es/library/aa342346(v=sql.110).aspx
© http://www.ibm.com/support/knowledgecenter/es/ssw_ibm_i_73/rzaha/jdbctydr.htm
© https://msdn.microsoft.com/es-es/library/aa342346(v=sql.110).aspx
© http://www.ibm.com/support/knowledgecenter/es/ssw_ibm_i_71/rzaha/basicjdbc.htm







