DESARROLLO DE SOFTWARE I
I.
TEMA : JDBC
1. Contenido
Ø
Capa de Acceso de datos, creación
La
mayoría de los proyectos actuales necesitan guardar o consultar datos de una
base de datos relacional, de esta manera se puede persistir la información de
sus usuarios y del negocio que implementan pudiendo acceder a ella en cualquier
momento.
Para
conectarse a las BD las aplicaciones utilizan por lo general drivers, que no
son más que componente que permiten realizar una conexión amigable con la base
de datos de un tipo específico. Algunos de estos tipos pueden ser MSSQL, MySQL,
Oracle, PostgreSQL, etc.
Otro
elemento importante a tener en cuenta es que para realizar operaciones sobre
los datos se necesita de un lenguaje de consultas que permita a los
desarrolladores trabajar con las bases de datos, y en este punto contamos con
SQL.
JAVA
como lenguaje primero hizo uso de JDBC para el acceso a las BD. Con esta
tecnología se puede:
- Establecer una conexión
con la BD, especificando un driver y los parámetros para autenticarse en
la BD.
- Usar la conexión establecida para realizar operaciones sobre la BD (seleccionar datos, insertar, modificar, eliminar, etc.).
- Procesar los resultados devueltos por las operaciones anteriores
Ø Creación de JDBC
JDBC
existe desde 1996, y fue incluido desde la versión 1.1 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 esto 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 que presentaba no era persistente, así que no era apto para
aplicaciones de negocios o industriales, que requerían la capacidad de acceder
a 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 en 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 no 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 escritorio usando Java y a un Entorno integrado de desarrollo
(IDE) desarrollado usando la Plataforma NetBeans.
Si eres un programador y desarrollas tus aplicaciones en Java seguramente necesitarás conectar una base de datos tipo MySQL a este entorno algún día, bueno, si lo necesitas ahora, he aquí una explicación paso a paso de cómo conectar ambas herramientas.
- Una vez que tengas ambas
herramientas instaladas necesitaras el driver o conector a la base de
datos de MySQL que puedes obtener desde aquí.
Copiar lo necesario
Una vez que tengas el NetBeans y el MySQL Server instalado lo que vas a necesitar es copiar el driver que descargaste, en mi caso el mysql-connector-java-3.1.11-bin.jar dentro de la carpeta del JDK, en mi caso es la siguiente ruta:
Una vez que tengas el NetBeans y el MySQL Server instalado lo que vas a necesitar es copiar el driver que descargaste, en mi caso el mysql-connector-java-3.1.11-bin.jar dentro de la carpeta del JDK, en mi caso es la siguiente ruta:
C:\Archivos de programa\Java\jdk1.6.0_01\jre\lib\ext
*NOTA: Debes tener el conector dentro de la carpeta anterior
antes de ejecutar el NetBeans, en caso de que esté abierto ciérralo y vuélvelo
a abrir.
Ya que lo hayas copiado ahora sí abre el NetBeans y espera a que cargue.
Configurar NetBeans:
Una vez que hayas abierto el NetBeans localiza la sección de Runtime o Tiempo de ejecución que se localiza en el lado izquierdo de la pantalla, como se muestra a continuación:
Al expandir la sección de Databases o Bases de
datos debe de aparecer el MySQL (Connector/J driver), en caso
contrario debes de agregarlo manualmente como se describe a continuación:
1.
. 2.En la ventana que aparece da clic en el
botón de Add o Agregar y busca el archivo
.jar que descargaste anteriormente, el mismo que copiaste dentro de la carpeta
del JDK.
3. Una vez hecho lo anterior da
clic en el botón de Ok o Aceptar.
Cuando realices los pasos anteriores debe de aparecer un elemento nuevo en
la sección de Drivers dentro de Databases de nombre MySQL (Connector/J
driver).
Ø Definición
de JDBC. Tipos. Aplicaciones
¿Qué es JDBC?
JDBC es usado para enviar
comandos SQL hacia una base de datos relacional, que puede ser Oracle, Infomix,
SyBase, etc.
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 interfaces 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
Un driver JDBC puede pertenecer a una de cuatro categorías
diferentes en cuanto a la forma de operar.
Puente JDBC-ODBC
La primera categoría de drivers es la utilizada
por Sun inicialmente para popularizar JDBC y consiste en aprovechar todo lo
existente, estableciendo un puente entre JDBC y ODBC. Este driver convierte
todas las llamadas JDBC a llamadas ODBC y realiza la conversión correspondiente
de los resultados.
La ventaja de este driver, que se proporciona con el JDK,
es que Java dispone de acceso inmediato a todas las fuentes posibles de bases
de datos y no hay que hacer ninguna configuración adicional aparte de la ya
existente. No obstante, tiene dos desventajas muy importantes; por un lado, la
mayoría de los drivers ODBC a su vez convierten sus llamadas a llamadas a una
librería nativa del fabricante DBMS, con lo cual la lentitud del driver
JDBC-ODBC puede ser exasperante, al llevar dos capas adicionales que no añaden funcionalidad
alguna; y por otra parte, el puente JDBC-ODBC requiere una instalación ODBC ya
existente y configurada.
Java/Binario
Este driver se salta la capa ODBC
y habla directamente con la librería nativa del fabricante del sistema DBMS
(como pudiera ser DB-Library para Microsoft SQL Server o CT-Lib para Sybase SQL
Server). Este driver es un driver 100% Java pero aun así necesita la existencia
de un código binario (la librería DBMS) en la máquina del cliente, con las
limitaciones y problemas que esto implica
100%
Java/Protocolo nativo
Es un driver
realizado completamente en Java que se comunica con el servidor DBMS utilizando
el protocolo de red nativo del servidor. De esta forma, el driver no necesita
intermediarios para hablar con el servidor y convierte todas las peticiones
JDBC en peticiones de red contra el servidor. La ventaja de este tipo de driver
es que es una solución 100% Java y, por lo tanto, independiente de la máquina
en la que se va a ejecutar el programa.
Igualmente, dependiendo de la forma en que esté programado
el driver, puede no necesitar ninguna clase de configuración por parte del
usuario.
La única desventaja de este tipo de drivers es que el
cliente está ligado a un servidor DBMS concreto, ya que el protocolo de red que
utiliza MS SQL Server por ejemplo no tiene nada que ver con el utilizado por
DB2, PostGres u Oracle. La mayoría de los 12 fabricantes de bases de datos han
incorporado a sus propios drivers JDBC del segundo o tercer tipo, con la
ventaja de que no suponen un coste adicional.
100%
Java/Protocolo independiente
Esta es la opción más flexible, se trata de un driver 100%
Java / Protocolo independiente, que requiere la presencia de un intermediario
en el servidor. En este caso, el driver JDBC hace las peticiones de datos al
intermediario en un protocolo de red independiente del servidor DBMS. El
intermediario a su vez, que está ubicado en el lado del servidor, convierte las
peticiones JDBC en peticiones nativas del sistema DBMS. La ventaja de este
método es inmediata: el programa que se ejecuta en el cliente, y aparte de las
ventajas de los drivers 100% Java, también presenta la independencia respecto
al sistema de bases de datos que se encuentra en el servidor.
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
una 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
Uso
de controladores de las BD
• Permite establecer y
gestionar conexiones a las BD
• Proporciona los
permisos para poder usar el DriverManager a código en ejecución dentro de un
Security Manager (por ejemplo applets)
• Métodos para
registrar y conectar controladores basados en tecnología JDBC
• Propiedades de un
controlador
Interfaz con la aplicación
• 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
• Savepoint
Puntos de recuperación en una transacción
• ResultSet
Conjunto de resultados que se devuelven de una
query
• ResultSetMetaData
Información sobre las
columnas del objeto ResultSet
Interfaz con la aplicación
•
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
• SQLData
• SQLInput
• SQLOutput
Secuencia normal
Cargar controladores
(si se usa una versión de Java inferior a la 6).
Establecer la conexión
Asociar una sentencia
SQL al objeto Statement
Proporcionar valores de
los parámetros
Ejecutar el objeto Statement
Si es necesario, se
pueden ejecutar varias instrucciones dentro de una transacción (propiedades
ACID)
Crear y ejecutar
instrucciones
Procesar resultados
Registrar un controlador
jdbc:subprotocolo:localizadorBD
Ø
Ejemplo
Ejemplo: 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());
}
}
}
}
2. 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).
3. Summary
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:
• Establishes a
connection to the database.
• Send SQL statements
• 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).
4. Recomendaciones
ü 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 .
ü
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
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.
5. Conclusiones
El
avance de la tecnología hizo surgir estándares que permiten crear
soluciones multibases de datos así como la conexión a múltiples bases de datos
como el JDBC y lenguajes capaces de crear aplicaciones que se ejecuten en
cualquier plataforma como JAVA las cuales aunque consumen un tiempo
considerable ofrecen soluciones.
En esta página toda la información de JDBC contiene las ideas más importantes de
manera general con una investigación hecha a fondo para que pueda facilitar el
trabajo de los lectores.
6. Apreciaciones
de 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 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 Términos
ü
BASE DE DATOS
Una base de datos es una colección de información
organizada de forma que un programa de ordenador pueda seleccionar rápidamente
los fragmentos de datos que necesite. Una base de datos es un sistema de
archivos electrónico.
ODBC
Open Database Connectivity (ODBC) es una
interfaz de aplicaciones (API) para acceder a datos en sistemas gestores de
bases de datos tanto relacionales como no relacionales, utilizando para ello
SQL (Lenguaje de Consulta Estructurado). Todas las aplicaciones que soporten
ODBC reconocerán una instrucción común de Lenguaje de Consulta Estructurado
(SQL).
ü API
Una API es
un conjunto de funciones y procedimientos que cumplen una o muchas funciones
con el fin de ser utilizadas por otro software. Las siglas API vienen
del inglés Application
Programming Interface. En
español sería Interfaz de Programación de Aplicaciones.
ü
SQL
El Lenguaje de consultas estructurado
(SQL) se utiliza para crear consultas de base de datos. LibreOffice permite
formular consultas en SQL o de forma interactiva mediante el ratón
ü
JDBC
La API Java Database
Connectivity (JDBC) se puede usar para conectarse con una base de datos desde
LibreOffice. Los controladores de JDBC se escriben en el lenguaje de
programación Java y no son exclusivos de ninguna plataforma.
ü
NETBEANS
NetBeans es un entorno de
desarrollo integrado libre,
hecho principalmente para el lenguaje de programación Java. Existe además un número importante de módulos para
extenderlo. NetBeans IDE es un
producto libre y gratuito sin restricciones de uso.
ü STATEMENT
Permite
enviar instrucciones a la Base de Datos.
ü DBMS
(Data Base Management System). Son las siglas en inglés para los Sistemas de Gestión de Bases de Datos (SGBD). Bajo este nombre se conoce a productos de fabricantes como Oracle, Sybase, Informix, Ingres, Borland, Microsoft, IBM, etc.Sistema de administración de bases de datos.
(Data Base Management System). Son las siglas en inglés para los Sistemas de Gestión de Bases de Datos (SGBD). Bajo este nombre se conoce a productos de fabricantes como Oracle, Sybase, Informix, Ingres, Borland, Microsoft, IBM, etc.Sistema de administración de bases de datos.
8. Linkografía
http://www.hermosaprogramacion.com/2014/07/mysql-java-conectar-como/
VINCULO DE LAS DIAPOSITIVAS SLIDESHARE ACERCA DE JDBC
VINCULO DE LAS DIAPOSITIVAS SLIDESHARE ACERCA DE JDBC










No hay comentarios.:
Publicar un comentario