“AÑO DE CANSOLIDACIÓN DEL MAR DE GRAU”
JDBC
(JAVA DATABASE CONNECTIVITY), CONECTIVIDAD DE BASES DE DATOS JAVA.
ESCUELA PROFESIONAL DE:
INGENIERÍA DE SISTEMA Y TELEMÁTICA
·
JAVA
DOCENTE: MARCO AURELIO PORRO CHULLI.
ASISGNATURA: DESARROLLO DE SOFTWARE
NOMBRE DEL GRUPO: “JAVA”
INTEGRANTES:
PÉREZ SAUCEDO YORDIN ALBERTO
·
MALDONADO IDROGO BETZABETH YAMELI
CICLO: V
GRUPO: “B”
AÑO: 2016
BAGUA
GRANDE-UTCUBAMBA
JDBC
1 1.
Contenido:
1.1.
Capa
de Acceso de Datos, creación.
El API JDBC soporta dos modelos diferentes
de acceso a bases de datos, modelos de dos y tres capas.
MODELO DE DOS CAPAS
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. Ésta es la configuración típica Cliente/Servidor: El
programa cliente envía instrucciones SQL
a la base de datos, ésta los 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 el cliente y el
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 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.
1.2.
Configuración
de conexión BD con NetBeans
Le
asignamos un nombre al proyecto y damos click en “next” nuevamente.
En la siguiente ventana solo damos clik en "finish"
Al archivo index.jsp le agregamos el siguiente código. En donde se especifica el archivo response.jsp el cual se creara en el proyecto.
Seleccionamos
el servidor GlassFish Server 3.1 y damos click en “next”
En la siguiente ventana solo damos clik en "finish"
Abrimos del proyecto creado el archivo index.jsp en donde le cambiaremos en la etiqueta <title> por nuestro titulo, en este caso IFPWAFCAD pagina de inicio
Al archivo index.jsp le agregamos el siguiente código. En donde se especifica el archivo response.jsp el cual se creara en el proyecto.
Podemos correr el archivo que llevamos hasta
ahora corriéndolo, dándole click derecho donde está el nombre del proyecto y
después en “run”, donde se visualizara lo siguiente
Ahora procedemos a crear el archivo
response.jsp, para ello damos click derecho en el nombre del proyecto -> new
-> JSP
El archivo response.jsp se encontrara en el
mismo directorio que el archivo index.jsp, como se muestra en la siguiente
imagen.
Se abre el archivo response.jsp y se le cambia
la etiqueta <title> por IFPWAFCAD
- {placeholder} y a la etiqueta <body> se le agrega el siguiente código:
Ahora visualizaremos la página en nuestro
navegador, dando click derecho al archivo response.jsp y en “Run” y se vera de
la siguiente forma:
Creación
de la hoja de estilo
Para la creación de la hoja de estilo agregamos
un nuevo archivo al proyecto. Click derecho en el nombre del proyecto -> new
-> Cascada Style Sheet (si no se encuentra ahí, se sigue la siguiente
forma: Click derecho en el nombre del
proyecto -> new -> other -> Web -> Casacading Style Sheet) le
asignamos el nombre style. El archivo se creara en el mismo directorio que
index.jsp y response.jsp
A continuación se le agregan los estilos de la siguiente
forma:
Se procede a ligar la hoja de estilos style.css
a las páginas index.jsp y response.jsp colocando la siguiente línea de código
entre la etiqueta <head>
<link rel="stylesheet"
type="text/css" href="style.css">
CONFIGURAR MySQL
Para configurar el MySQL en Netbeans nos
vamos a Services -> DataBases -> Drivers
Damos click derecho a MySQL
(Connector/J driver) -> Connect using
Y se abrirá la siguiente ventana:
Después se selecciona el connector previamente
descargado (ANEXO 1.2)
En el campo Host ingresamos localhost y en Port
3306, en Database mysql. En User Name root y tecleamos la clave en el campo
Password. Damos click en Next.
Se visualizará lo siguiente:
Ahora procedemos a conectar el servidor MySQL
dando click derecho -> connect
Ahora expandimos el servidor MySQL y vemos las bases de
datos disponibles
Ahora podemos crear bases de datos usando el editor SQL.
Nuestra base de datos se llamara MiPrimeraBaseDatos
En la ventana de servicios, se da click derecho en el
servidor MySQL -> Create Database
Ahora expandimos la conexión de nuestra Base de Datos, donde hay tres
subcarpetas: Tables, Views y Procedures.
JDBC
es usado para enviar comandos SQL hacia una base de datos relacional, que puede
ser Oracle, Infomix, SyBase, etc.
Qué hace JDBC?
- Establece
una conexión con una BD
- Envía
sentencias SQL
-Procesa
los resultados
Connection con = DriverManager.getConnection (
"jdbc:odbc:wombat", "login", "password");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT a, b, c
FROM Table1");
while (rs.next()) { int x = rs.getInt("a");
String s = rs.getString("b"); float f = rs.getFloat("c"); }
JDBC es una API de bajo nivel
para API´s de alto nivel
Una
integración de SQL hacia Java, es decir que las sentencias SQL se puedan
mezclar con Java, por ejemplo, que una variable de Java pueda ser usada en una
sentencia SQL para recibir o dar valores.
Un
mapeo directo de las tablas de la BD hacia las clases de Java, donde cala fila
de la tabla se convierte en una instancia de la clase, y donde cada columna se
corresponde a un atributo de esa instancia.
JDBC
v/s ODBC y otras API´s
ODBC
no es apropiado para usar directamente con Java por que usa una interfaz en C.
Una
traducción literal de la API ODBC en C, no es deseable. Por ejemplo Java no
tiene punteros y la ODBC hace gran uso de ellos.
ODBC
es muy difícil de aprender, hace una mezcla de acciones simples y avanzadas.
Una
API como JDBC es necesario para poder desarrollar una solución “puramente de
Java”
APLICACIÓN
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í https://www.google.com.pe/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=direccionamiento+para+poder+descargar+Java-MySQL
Para
poder usar el driver se debe configurar la variable de entorno CLASSPATH de la
siguiente forma export CLASSPATH=$HOME/directorio/mysql-connector-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
TIPO DE CONTROLADORES JDBC
Tipo 1
Los
controladores de tipo 1 son controladores "puente". Utilizan otra
tecnología, como por ejemplo, ODBC (Open Database Connectivity), para
comunicarse con la base de datos. Esto representa una ventaja, ya que existen
controladores ODBC para muchas plataformas RDBMS (sistemas de gestión de bases
de datos relacionales). Se emplea la interfaz Java nativa (JNI) para llamar a
funciones ODBC desde el controlador JDBC.
Un
controlador de tipo 1 debe tener el controlador puente instalado y configurado
para poder utilizar JDBC con él. Esto puede representar un grave inconveniente
para una aplicación de producción. Los controladores de tipo 1 no pueden
utilizarse en un applet, ya que los applets no pueden cargar código nativo.
Tipo 2
Los
controladores de tipo 2 utilizan una API nativa para comunicarse con un sistema
de base de datos. Se utilizan métodos Java nativos para invocar las funciones
de API que realizan operaciones de base de datos. Los controladores de tipo 2
son generalmente más rápidos que los controladores de tipo 1.
Los
controladores de tipo 2 necesitan tener instalado y configurado código binario
nativo para funcionar. Un controlador de tipo 2 siempre utiliza JNI. Los
controladores de tipo 2 no pueden utilizarse en un applet, ya que los applets
no pueden cargar código nativo. Un controlador JDBC de tipo 2 puede requerir la
instalación de algún software de red DBMS (sistema de gestión de bases de
datos).
El
controlador JDBC de Developer Kit para Java es de tipo 2.
Tipo 3
Estos
controladores utilizan un protocolo de red y middleware para comunicarse con un
servidor. A continuación, el servidor convierte el protocolo a llamadas de función
DBMS específicas de DBMS.
Los
controladores de tipo 3 son la solución JDBC más flexible, ya que no requieren
ningún código binario nativo en el cliente. Un controlador de tipo 3 no
necesita ninguna instalación de cliente.
Tipo 4
El
controlador de tipo 4 utiliza Java para implementar un protocolo de red de
proveedores de DBMS. Puesto que los protocolos son generalmente de propiedad,
los proveedores DBMS son generalmente las únicas empresas que suministran un
controlador JDBC de tipo 4.
Los
controladores de tipo 4 son todos ellos controladores Java. Esto significa que
no existe ninguna instalación ni configuración de cliente. Sin embargo, un
controlador de tipo 4 puede no ser adecuado para algunas aplicaciones si el
protocolo subyacente no maneja adecuadamente cuestiones tales como la seguridad
y la conectividad de red.
1.4.
Uso
de JDBC en aplicaciones Java:
JDBC (Java Database Connectivity) es un
API de Java que nos permite conectarnos con bases de datos y realizar
operaciones sobre ellas utilizando instrucciones SQL desde una aplicación Java.
Con
JDBC tenemos una interfaz para conectarnos
con una base de datos sin tener que preocuparnos de si es una base de datos
MySQl, Oracle, SQLServer o cualquier otro tipo de base de datos. El único
cambio que habría que hacer para cambiar el tipo de base de datos de una
aplicación sería cambiar el driver específico de la base de datos en cuestión.
Para usar JDBC hay que seguir los
siguientes pasos:
1.
Incluir
el jar con el Driver de la base de datos: El
primer paso es obtener el driver de la base de datos que vamos a utilizar,
buscamos en google “MySQL jdbc driver”, “Oracle jdbc driver” o el que queramos
y descargamos el jar y lo incluimos es nuestro proyecto. Para este ejemplo voy a usar MySQL.
2.
Cargar
el driver: Ya tenemos el jar con el driver, pero hay que
cargarlo para que se pueda hacer uso de el en nuestra aplicación. En nuestro caso como vamos a usar MySQL la
instrucción es la siguiente y como puede lanzar una excepción pues se mete
dentro de un try-catch.
3. Establecer
una conexión con la base de datos: El siguiente paso es establecer una conexión
con la base de datos. Hay dos opciones para obtener una conexión la primera es
crear una nueva conexión con la base de datos que será la que veremos en este
ejemplo y la otra es obtener la conexión de un pool de conexiones creado
previamente que es una opción más eficiente porque no hace falta estar abriendo
y cerrando conexiones continuamente ya que simplemente se cogen las conexiones
de pool cuando se necesitan y se dejan en el pool cuando ya no se necesitan para
que puedan volver a usarse.
4. Realizar
una consulta: Una vez obtenida la conexión ya podemos
hacer consultas a la base de datos. Hay tres métodos para ejecutar una consulta
de tipo Statement que es una consulta normal, PreparedStatement con la que se
puede crear una consulta que se precompila en la base de datos y como es de
esperar se pueden establecer los distintos datos porque aunque la estructura de
la consulta será la misma lo lógico es que los datos de la consulta sean
distintos y finalmente están las CallableStatements que sirven
para ejecutar procedimientos almacenados.
Como se puede ver el primer paso es crear
un statement sobre el que luego podemos hacer las consultas que queramos, una
vez creado para hacer nuestra consulta tenemos los métodos execute (para hacer
cualquier consulta, pero su valor de devolución es boolean y devuelve true si
lo que devuelve es un resulset y falso en caso contrario), exeteQuery (para
hacer select) y executeUpdate (para hacer insert, update y delate). Y
finalmente si se ejecuta una query podemos obtener el resultado mediante
ResultSet, para obtener los valores de las columnas resulset tiene un get para
cada tipo de datos que se puede llamar pasándole como parámetro el nombre de la
columna de base de datos o el número de la columna según se prefiera.
Como se puede ver el código para hacer una
consulta no es muy complicado pero es muy propenso a errores porque hay que
estar creando cadenas de texto concatenadas con variables java y hay que
recordar que si el dato es de tipo texto hay que anidar comillas y entre unas
cosas y otras es fácil cometer algún error. Para facilitar el trabajo con bases
de datos hay alternativas a trabajar directamente con JDBC como JPA o
Hibernate, pero estamos hablando de JDBC…
Si usamos PreparedStatement además de que
son más eficientes nos facilitan la tarea de escribir las consultas SQL porque
en lugar de tener que estar concatenando las distintas variables con el código
SQL, lo que se hace es sustituir en este las variables por ? y posteriormente
se introducen los datos concretos mediante setters. En el siguiente código
puedes ver como se crean unas PreparedStatement.
5.
Cerrar
la conexión: Después de hacer las consultas que se
necesite se debe de cerrar la conexión para liberar los recursos, también se
pueden cerrar el resulset y el statement de forma manual pero cerrando la
conexión se cierran los otros dos porque están creados a partir de la conexión,
del mismo modo al cerrar el statement también se liberan los recursos del
resulset.
1.5.
Ejemplos
Ejemplos JDBC ( Lado Cliente )
Se asume que se tiene instalado una DBMS Oracle 8i (versión 8.1.6) y que se puede conectar usando el driver de JDBC.
Brevemente estos ejemplos muestran cómo conectarse a la Base de Datos y usar sentencias SQL simples como "select", "insert", "update" y "delete".
Algunos ejemplos simples:
driver_ver.java Despliega la versión del driver.
driver_check.java Chequea si corren los drivers correctamente.
tab_sel.java Select a una tabla.
tab_upd.java Modifica registros en una tabla.
tab_del.java Borra registros de una tabla.
tab_ins.java Inserta registros hacia una tabla.
tabprep_upd.java Como usar una sentencia de preparación con un "update".
Se asume que se tiene instalado una DBMS Oracle 8i (versión 8.1.6) y que se puede conectar usando el driver de JDBC.
Brevemente estos ejemplos muestran cómo conectarse a la Base de Datos y usar sentencias SQL simples como "select", "insert", "update" y "delete".
Algunos ejemplos simples:
driver_ver.java Despliega la versión del driver.
driver_check.java Chequea si corren los drivers correctamente.
tab_sel.java Select a una tabla.
tab_upd.java Modifica registros en una tabla.
tab_del.java Borra registros de una tabla.
tab_ins.java Inserta registros hacia una tabla.
tabprep_upd.java Como usar una sentencia de preparación con un "update".
call_sp.java Llamado a un procedimiento de Oracle.
call_sf.java Llama a una función de Oracle.
excep_1.java Manejo de excepciones (1).
excep_2.java Manejo de excepciones (2).
meta_data1.java Meta-datos. Cómo manejar un "select *".
meta_data2.java Más métodos con meta-datos, cómo obtener los nombres de los campos.
meta_data3.java Más métodos con meta-datos (*).
meta_data4.java Detalles sobre las palabras claves no estándares de la BD.
meta_data5.java Cómo encontrar el largo máximo de un nombre de un campo.
meta_data6.java Tipos de tablas permitidos.
tab_preupdtran.java Cómo setear una transacción.
tab_preupdrb.java Cómo ejecutar un "rollback"
2.
Resumen
Definición
de JDBC.
JDBC es usado para enviar
comandos SQL hacia una base de datos relacional, que puede ser Oracle, Infomix,
SyBase, etc.
¿Qué hace JDBC?
-
Establece una conexión con una
BD
-
Envía sentencias SQL
-
Procesa los resultados
JDBC es una API de bajo nivel
para API´s de alto nivel
Una integración de SQL hacia
Java, es decir que las sentencias SQL se puedan mezclar con Java, por ejemplo,
que una variable de Java pueda ser usada en una sentencia SQL para recibir o
dar valores.
JDBC v/s ODBC y otras API´s
ODBC no es apropiado para usar
directamente con Java por que usa una interfaz en C.
Una traducción literal de la
API ODBC en C, no es deseable. Por ejemplo Java no tiene punteros y la ODBC
hace gran uso de ellos.
ODBC es muy difícil de
aprender, hace una mezcla de acciones simples y avanzadas.
Una API como JDBC es necesario
para poder desarrollar una solución “puramente de Java”
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.
TIPO
DE CONTROLADORES JDBC
Tipo
1
Los controladores de tipo 1
son controladores "puente". Utilizan otra tecnología, como por
ejemplo, ODBC (Open Database Connectivity), para comunicarse con la base de
datos.
Tipo
2
Los controladores de tipo 2
utilizan una API nativa para comunicarse con un sistema de base de datos. Se
utilizan métodos Java nativos para invocar las funciones de API que realizan
operaciones de base de datos
Tipo 3
Estos controladores utilizan
un protocolo de red y middleware para comunicarse con un servidor. A
continuación, el servidor convierte el protocolo a llamadas de función DBMS
específicas de DBMS.
Los controladores de tipo 3
son la solución JDBC más flexible, ya que no requieren ningún código binario
nativo en el clientede tipo 2 son generalmente más rápidos que los
controladores de tipo 1.
Tipo
4
El controlador de tipo 4
utiliza Java para implementar un protocolo de red de proveedores de DBMS.
Puesto que los protocolos son generalmente de propiedad, los proveedores DBMS
son generalmente las únicas empresas que suministran un controlador JDBC de
tipo 4
3.
Summary
Defining JDBC.
JDBC
is used to send commands to a SQL relational database, which can be Oracle,
Informix, Sybase, etc.
What makes JDBC?
§
Establishes
a connection to a DB.
§
Send
SQL statements.
§
Process
the results
JDBC is a low-level API for high-level APIs
Integration of SQL to Java, meaning that SQL
statements can be mixed with Java, for example, a Java variable can be used in
an SQL statement to receive or give values.
JDBC v / s ODBC and other APIs
ODBC is not suitable for use directly by using a Java
interface C.
A literal translation of the ODBC API in C, is not
desirable. For example Java has no pointers, and ODBC makes great use of them.
ODBC is hard to learn, makes a mixture of simple and
advanced actions.
An API like JDBC is needed to develop a solution
"pure Java"
APPLICATION
The database which is going to work is called
arg_musiteca and is on the server Aragorn (aragorn.elo.utfsm.cl). The database
is hosted on a MySQL server.
DRIVER TYPE JDBC
Type 1
Type 1 drivers are "bridge" drivers. They
use other technology, such as ODBC (Open Database Connectivity), to communicate
with the database.
Type 2
Type 2 drivers use a native API to communicate with a
database system. Java native methods are used to invoke the API functions that
perform database operations
Type 3
These controllers use a network protocol and
middleware to communicate with a server. Then, the server converts the protocol
calls DBMS DBMS specific function.
Type 3 drivers are the most flexible JDBC solution
because they do not require any native binary code in type 2 clientede are
generally faster than Type 1 drivers.
Type 4
The type 4 driver uses Java to implement a network
protocol DBMS providers. Since protocols are generally property, DBMS providers
are generally the only companies that provide a JDBC type 4 driver
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.
- La cuenta de Sitio Web, 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.
5.
Conclusiones
En
este capítulo se menciona las
apreciaciones más importantes de esta investigación de manera general, así como
referencias únicamente a la configuración y conexión de una base de datos.
También mostramos algunos ejemplos para facilitar su trabajo.
6.
Apreciación
del Equipo
JDBC es un texto diseñado para
adiestrar en el desarrollo de aplicaciones escritas en lenguaje Java y accedan
a base a bases de datos a través de JDBC 2.0, así como dar a conocer todos los aspectos sintácticos del API JDBC 2.0.
7.
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.
- RDBMS: Un RDBMS 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.
-
JNI: Java Native Interface (JNI) es un
framework de programación que permite que un programa escrito en Java ejecutado
en la máquina virtual java (JVM) pueda interactuar con programas escritos en
otros lenguajes como C, C++ y ensamblador.
-
MIDDLEWARE: Es un software de
computadora que conecta componentes de software o aplicaciones para que puedan
intercambiar datos entre éstas. Es utilizado a menudo para soportar
aplicaciones distribuidas. Esto incluye servidores web, servidores de
aplicaciones, sistemas de gestión de contenido y herramientas similares.
8.
Linkografía
https://webap.wikispaces.com/file/view/reporte_Tutorial.pdf
DIAPOSITIVAS: http://es.slideshare.net/YordinAlbertoPrezSau/jdbc-66102101
VIDEO: JDBC
DIAPOSITIVAS: http://es.slideshare.net/YordinAlbertoPrezSau/jdbc-66102101
VIDEO: JDBC
Presentacion bien desarrollada.Trabajo bien elaborado.Ilustrar el trabajo. Proponga un foro de discusión sobre el tema.Defina bien las recomendaciones y conclusiones. Muchas gracias por su investigación. Gracias. Saludos
ResponderEliminarEste comentario ha sido eliminado por un administrador del blog.
ResponderEliminar