0% encontró este documento útil (0 votos)
21 vistas25 páginas

T08 Conexión Java - MySQL

El documento presenta una guía sobre Java Data Base Connectivity (JDBC), explicando su arquitectura y funcionamiento en la conexión de aplicaciones Java con bases de datos. Se detalla la estructura de JDBC, los tipos de controladores disponibles y sus características, así como la diferencia entre JDBC y ODBC. Además, se enfatiza la importancia de los controladores JDBC para la comunicación efectiva entre aplicaciones Java y sistemas de gestión de bases de datos.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
21 vistas25 páginas

T08 Conexión Java - MySQL

El documento presenta una guía sobre Java Data Base Connectivity (JDBC), explicando su arquitectura y funcionamiento en la conexión de aplicaciones Java con bases de datos. Se detalla la estructura de JDBC, los tipos de controladores disponibles y sus características, así como la diferencia entre JDBC y ODBC. Además, se enfatiza la importancia de los controladores JDBC para la comunicación efectiva entre aplicaciones Java y sistemas de gestión de bases de datos.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Universidad Facultad de Ingeniería

Nacional Programa de Estudios: Ingeniería de Sistemas


de Trujillo Experiencia Curricular: Programación Orientada a Objetos II

PROGRAMACIÓN
ORIENTADA A OBJETOS II
Ms. Zoraida Yanet VIDAL MELGAREJO
zvidal@[Link]

Sesión 08

Java Data Base


Connectivity (JDBC)

2
Docente: Ms. Zoraida Yanet Vidal Melgarejo Tema: Conexión Java – MySQL
Página - 1 -
Universidad Facultad de Ingeniería
Nacional Programa de Estudios: Ingeniería de Sistemas
de Trujillo Experiencia Curricular: Programación Orientada a Objetos II

Arquitectura de una
aplicación

• Una aplicación Java que realiza accesos a


bases de datos funciona según una arquitectura
que permite escribir los programas
abstrayéndose de los detalles de los niveles
inferiores (discos, drivers, sistema operativo, etc.).

• En el nivel superior se encuentran las


aplicaciones que realizamos; estas aplicaciones
son interpretadas por la máquina virtual de Java
(JVM).

-3-

Arquitectura de una aplicación


Aplicación

JVM
Figura 1. Niveles del
esquema de funcionamiento
con bases de datos.
Sistema Operativo

ODBC

Oracle Access MySQL

-4-

4
Docente: Ms. Zoraida Yanet Vidal Melgarejo Tema: Conexión Java – MySQL
Página - 2 -
Universidad Facultad de Ingeniería
Nacional Programa de Estudios: Ingeniería de Sistemas
de Trujillo Experiencia Curricular: Programación Orientada a Objetos II

Arquitectura de una aplicación

• El sistema operativo proporciona el nivel de


entrada/salida, que interactúa con los dispositivos
físicos donde se encuentran las bases de datos (que
pueden ser de diferentes tipos). El sistema operativo
también gestiona el nivel de ODBC (Open Data Base
Conectivity).

• ODBC permite utilizar una interfaz única para los


distintos tipos de bases de datos, además de
proporcionar nombres lógicos que se relacionan con
los nombres físicos que tendrán los archivos.

-5-

Arquitectura de una aplicación


Aplicación Select * from …

Figura 2. Arquitectura ResultSet Statement


del sistema vista JVM
desde el nivel de
aplicación, usando
Java.
Sistema Operativo
Connection

ODBC
DriverManager

Oracle Access MySQL

-6-

6
Docente: Ms. Zoraida Yanet Vidal Melgarejo Tema: Conexión Java – MySQL
Página - 3 -
Universidad Facultad de Ingeniería
Nacional Programa de Estudios: Ingeniería de Sistemas
de Trujillo Experiencia Curricular: Programación Orientada a Objetos II

Arquitectura de una aplicación

• El “tubo” representa a la clase Connection, que proporciona el “medio” para


comunicarse con las bases de datos. Según cuál sea el tipo de la base de datos,
los drivers serán diferentes, por lo que en primer lugar se crea un objeto de tipo
DriverManager y, a través de él, el objeto Connection.

• Una vez que se dispone de la conexión adecuada, se crea una instancia de la


clase Statement y se utiliza para definir las sentencias SQL adecuadas en la
aplicación. Estas sentencias SQL proporcionarán, en general, una serie de datos
provenientes de la base de datos, que se almacenan en una instancia del
objeto ResultSet.

-7-

Java Data Base


Connectivity (JDBC)

• JDBC es una API estándar que implementa la estrategia universal de acceso a datos
de JAVA.

• Es una interfaz que permite a un programa Java ejecutar instrucciones SQL dentro de
Bases de Datos Relacionales, las cuales deben seguir el estándar ANSI SQL-92.

-8-

8
Docente: Ms. Zoraida Yanet Vidal Melgarejo Tema: Conexión Java – MySQL
Página - 4 -
Universidad Facultad de Ingeniería
Nacional Programa de Estudios: Ingeniería de Sistemas
de Trujillo Experiencia Curricular: Programación Orientada a Objetos II

Java Data Base Connectivity (JDBC)

• Java Database Connectivity (JDBC) es una interfaz de programación de aplicaciones


(API) para el lenguaje de programación Java, que define cómo un cliente puede
acceder a cualquier tipo de datos tabulares, especialmente a una base de datos
relacional. Es parte de la plataforma Java Standard Edition, de Oracle Corporation.
Actúa como una interfaz de capa intermedia entre las aplicaciones Java y la base
de datos.

• Las clases JDBC están incluidas en el paquete Java [Link] y [Link].

• JDBC permite escribir aplicaciones Java que gestionan estas tres actividades de
programación:
✓ Conectarse a una fuente de datos, como una base de datos.
✓ Enviar consultas y actualizar declaraciones a la base de datos.
✓ Recuperar y procesar los resultados recibidos de la base de datos en respuesta a la
consulta

-9-

Java Data Base Connectivity (JDBC)

• El único requerimiento es disponer del controlador (driver) JDBC apropiado.

- 10 -

10
Docente: Ms. Zoraida Yanet Vidal Melgarejo Tema: Conexión Java – MySQL
Página - 5 -
Universidad Facultad de Ingeniería
Nacional Programa de Estudios: Ingeniería de Sistemas
de Trujillo Experiencia Curricular: Programación Orientada a Objetos II

Java Data Base Connectivity (JDBC)

• Los controladores JDBC son adaptadores del lado del cliente (instalados en la
máquina del cliente, no en el servidor) que convierten las solicitudes de los programas
Java en un protocolo que el DBMS puede comprender.

• JDBC es usado por aplicaciones de escritorio, applets y servlets.

• El código es independiente del gestor que utilizan, por tanto es portable y escalable.

• Hay 4 tipos de controladores JDBC:


✓ Controlador de tipo 1 o controlador de puente JDBC-ODBC.
✓ Controlador de tipo 2 o controlador de API nativa.
✓ Controlador de tipo 3 o controlador de protocolo de red.
✓ Controlador de tipo 4 o controlador delgado.

- 11 -

11

Java Data Base Connectivity (JDBC)

- 12 -

12
Docente: Ms. Zoraida Yanet Vidal Melgarejo Tema: Conexión Java – MySQL
Página - 6 -
Universidad Facultad de Ingeniería
Nacional Programa de Estudios: Ingeniería de Sistemas
de Trujillo Experiencia Curricular: Programación Orientada a Objetos II

Java Data Base Connectivity (JDBC)

• Puente JDBC - ODBC


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

- 13 -

13

Java Data Base Connectivity (JDBC)

• Puente JDBC - ODBC


✓ El controlador de tipo 1 o el controlador de puente JDBC-ODBC utiliza el
controlador ODBC para conectarse a la base de datos, convierte las llamadas a
métodos JDBC en llamadas a funciones ODBC. También se le denomina
controlador universal porque se puede utilizar para conectarse a cualquiera de las
bases de datos.
✓ Como se utiliza un controlador común para interactuar con diferentes bases de
datos, los datos transferidos a través de este controlador no están tan seguros.
✓ Es necesario instalar el controlador de puente ODBC en las máquinas cliente
individuales.
✓ El controlador de tipo 1 no está escrito en Java, por eso no es un controlador
portátil.

- 14 -

14
Docente: Ms. Zoraida Yanet Vidal Melgarejo Tema: Conexión Java – MySQL
Página - 7 -
Universidad Facultad de Ingeniería
Nacional Programa de Estudios: Ingeniería de Sistemas
de Trujillo Experiencia Curricular: Programación Orientada a Objetos II

Java Data Base Connectivity (JDBC)

• Puente JDBC - ODBC


✓ Este software de controlador está integrado con JDK, por lo que no es necesario
instalarlo por separado.
✓ Es un controlador independiente de la base de datos.

- 15 -

15

Java Data Base Connectivity (JDBC)

• Native API
✓ 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 (Java Native
Interface). 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.

- 16 -

16
Docente: Ms. Zoraida Yanet Vidal Melgarejo Tema: Conexión Java – MySQL
Página - 8 -
Universidad Facultad de Ingeniería
Nacional Programa de Estudios: Ingeniería de Sistemas
de Trujillo Experiencia Curricular: Programación Orientada a Objetos II

Java Data Base Connectivity (JDBC)

• Native API
✓ El controlador de la API nativa utiliza las bibliotecas del lado del cliente de la base
de datos. Este controlador convierte las llamadas al método JDBC en llamadas
nativas de la API de la base de datos. Para interactuar con diferentes bases de
datos, este controlador necesita su API local, por eso la transferencia de datos es
mucho más segura en comparación con el controlador de tipo 1.
✓ El controlador debe instalarse por separado en las máquinas cliente individuales
✓ La biblioteca cliente del proveedor debe instalarse en la máquina cliente.
✓ El controlador de tipo 2 no está escrito en Java, por eso no es un controlador
portátil
✓ Es un controlador dependiente de la base de datos.

- 17 -

17

Java Data Base Connectivity (JDBC)

• Native API

✓ Traduce Java al API de la Base de Datos.

- 18 -

18
Docente: Ms. Zoraida Yanet Vidal Melgarejo Tema: Conexión Java – MySQL
Página - 9 -
Universidad Facultad de Ingeniería
Nacional Programa de Estudios: Ingeniería de Sistemas
de Trujillo Experiencia Curricular: Programación Orientada a Objetos II

Java Data Base Connectivity (JDBC)

• Middleware
✓ 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.
✓ El controlador de protocolo de red utiliza middleware (servidor de aplicaciones)
que convierte las llamadas JDBC directa o indirectamente en el protocolo de
base de datos específico del proveedor. Aquí, todos los controladores de
conectividad de la base de datos están presentes en un solo servidor, por lo que
no es necesaria una instalación individual del lado del cliente.

- 19 -

19

Java Data Base Connectivity (JDBC)

• Middleware
✓ Los controladores de tipo 3 están completamente escritos en Java, por lo que son
controladores portátiles.
✓ No se requiere una biblioteca del lado del cliente debido al servidor de
aplicaciones que puede realizar muchas tareas como auditoría, equilibrio de
carga, registro, etc.
✓ Se requiere soporte de red en la máquina cliente.
✓ El mantenimiento del controlador de protocolo de red se vuelve costoso porque
requiere que la codificación específica de la base de datos se realice en el nivel
medio.
✓ Brinda la facilidad para cambiar de una base de datos a otra.

- 20 -

20
Docente: Ms. Zoraida Yanet Vidal Melgarejo Tema: Conexión Java – MySQL
Página - 10 -
Universidad Facultad de Ingeniería
Nacional Programa de Estudios: Ingeniería de Sistemas
de Trujillo Experiencia Curricular: Programación Orientada a Objetos II

Java Data Base Connectivity (JDBC)

• Middleware
✓ Invoca un servidor intermedio generalmente ubicado en el mismo host de la Base
de Datos. Utiliza un protocolo estándar independiente de la Base de Datos.

- 21 -

21

Java Data Base Connectivity (JDBC)

• Controlador delgado
✓ 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.
✓ El controlador JDBC de IBM® Toolbox para Java es de tipo 4, lo cual indica que la
API es un controlador de protocolo red Java puro.

- 22 -

22
Docente: Ms. Zoraida Yanet Vidal Melgarejo Tema: Conexión Java – MySQL
Página - 11 -
Universidad Facultad de Ingeniería
Nacional Programa de Estudios: Ingeniería de Sistemas
de Trujillo Experiencia Curricular: Programación Orientada a Objetos II

Java Data Base Connectivity (JDBC)

• Controlador delgado
✓ El controlador de tipo 4 también se denomina controlador de protocolo nativo.
Este controlador interactúa directamente con la base de datos. No requiere
ninguna biblioteca de base de datos nativa, por eso también se conoce como
Thin Driver.
✓ No requiere ninguna biblioteca nativa ni servidor Middleware, por lo que no
requiere instalación del lado del cliente o del lado del servidor.
✓ Está completamente escrito en lenguaje Java, por lo que son controladores
portátiles.

- 23 -

23

Java Data Base Connectivity (JDBC)

• Controlador delgado

✓ Genera el protocolo de comunicaciones de la Base de Datos.

- 24 -

24
Docente: Ms. Zoraida Yanet Vidal Melgarejo Tema: Conexión Java – MySQL
Página - 12 -
Universidad Facultad de Ingeniería
Nacional Programa de Estudios: Ingeniería de Sistemas
de Trujillo Experiencia Curricular: Programación Orientada a Objetos II

Java Data Base Connectivity (JDBC)

• Diferencia entre ODBC y JDBC.


ODBC JDBC
Introducido por Microsoft en 1992. Introducido por SUN Micro Systems en 1997.
Se usa ODBC para cualquier lenguaje como C, Se puede usar JDBC sólo para el lenguaje Java.
C ++, Java, etc.
Se utiliza ODBC con la plataforma de Windows. Se puede utilizar JDBC en cualquier plataforma.
Para las aplicaciones Java, no se recomienda Para las aplicaciones Java, se recomienda
utilizar ODBC porque el rendimiento se reducirá utilizar JDBC porque no existe ningún problema
debido a la conversión interna y las que dependa del rendimiento ni de la
aplicaciones pasarán a depender de la plataforma.
plataforma.
ODBC es de procedimiento. JDBC está orientado a objetos.

- 25 -

25

Java Data Base Connectivity (JDBC)

• A continuación, se muestra una lista de los drivers JDBC de las RDBMS más utilizadas.

- 26 -

26
Docente: Ms. Zoraida Yanet Vidal Melgarejo Tema: Conexión Java – MySQL
Página - 13 -
Universidad Facultad de Ingeniería
Nacional Programa de Estudios: Ingeniería de Sistemas
de Trujillo Experiencia Curricular: Programación Orientada a Objetos II

Sesión 08

Conexión desde
una aplicación en
Java a una Base de
Datos en MySQL

27

Uso de JDBC para la ejecución de


comandos SQL
Cargar/Registrar
[Link](“nombre_driver”); 1
el Driver JDBC

[Link](url, Obtener
usuario,contraseña); 2
la Conexión

[Link]();
Crear
[Link](sql); 3
el Comando
[Link](sql);

[Link](); Ejecutar
4
[Link](); el Comando (select)

(create,alter,drop) DDL Procesar


4.1
(insert,update,delete) DML los Resultados

[Link]();
Liberar Recursos 5
[Link]();
- 28 -

28
Docente: Ms. Zoraida Yanet Vidal Melgarejo Tema: Conexión Java – MySQL
Página - 14 -
Universidad Facultad de Ingeniería
Nacional Programa de Estudios: Ingeniería de Sistemas
de Trujillo Experiencia Curricular: Programación Orientada a Objetos II

Uso de JDBC para la ejecución de


comandos SQL
1. Cargar y registrar el controlador (driver).
• Se manipula a nivel de memoria la clase [Link]

2. Obtener la Conexión.
• Se obtiene una instancia de tipo [Link] mediante el DriverManager

3. Crear el Comando.
• Desde una instancia de Connection se pueden crear:
✓ Comandos Estáticos ([Link])
✓ Comandos Dinámicos ([Link])
✓ Llamadas a Procedimientos Almacenados ([Link])

- 29 -

29

Java Data Base Connectivity (JDBC)

4. Ejecutar el Comando
• Existen dos modos básicos de ejecución de comando
✓ executeQuery para comandos Select
✓ executeUpdate para comando DDL y DML de actualización
4.1 Procesar los Resultados
Sólo en caso de la ejecución de una consulta de selección, los resultados son
manipulados a través de una instancia de [Link], el cual brinda
soporte para recorrido sobre registros.

5. Liberar Recursos
• La llamada al método close() de una conexión o de un comando, marca las
instancias para su eliminación de la memoria por el Recolector de basura.

- 30 -

30
Docente: Ms. Zoraida Yanet Vidal Melgarejo Tema: Conexión Java – MySQL
Página - 15 -
Universidad Facultad de Ingeniería
Nacional Programa de Estudios: Ingeniería de Sistemas
de Trujillo Experiencia Curricular: Programación Orientada a Objetos II

La clase
[Link]

• Provee servicios para administrar un conjunto de drivers JDBC.

• Permite localizar un driver JDBC cargado en memoria (mediante el método


[Link]()) y devolver una conexión a la BD dada por la url.

• Se usa el método getConnection(url, usuario, contraseña) para obtener una


conexión a la BD, con lo cual se debe conocer su url, usuario y contraseña.

• DriverManager es una clase (no una interface) que viene con la API, con lo cual, un
proveedor de BD no puede optimizar esta clase.

- 31 -

31

La clase [Link]

• Características
✓ Lleva el control de los gestores JDBC disponibles
✓ Es posible que existan varios dentro del sistema
✓ Por defecto, carga todos los disponibles en [Link]
✓ El gestor cargado debería registrarse con el método registerDriver

• [Link]
✓ Gestor de información y configuración general que se carga durante la
inicialización mediante:
o [Link]
o [Link]
✓ Se le pedirá información a lo largo del programa, residirá en memoria, dentro sus
métodos más importantes: connect y getPropertyInfo.

- 32 -

32
Docente: Ms. Zoraida Yanet Vidal Melgarejo Tema: Conexión Java – MySQL
Página - 16 -
Universidad Facultad de Ingeniería
Nacional Programa de Estudios: Ingeniería de Sistemas
de Trujillo Experiencia Curricular: Programación Orientada a Objetos II

1. Cargar / registrar el driver JDBC

• Instrucciones para la carga del driver:

[Link](“nombre_driver”);

• Para cargar el driver de MySQL colocaremos lo siguiente:

[Link]("[Link]");

• El driver es cargado a memoria y la clase DriverManager lo gestiona.

• El método forName se utiliza para cargar clases por reflexión, de forma indirecta.

- 33 -

33

2. Obtener la conexión

• [Link]
Puntero a la base de datos que proporciona el contexto de trabajo para los objetos
Statement y ResultSet. Soporta propiedades de transacción: setAutoCommit, commit
y rollback.

• Un objeto [Link] representa una conexión con una Base de Datos.


Sobre una conexión pueden ser ejecutadas sentencias SQL y obtenerse resultados.

• La clase DriverManager provee el método sobrecargado getConnection, que


requiere la URL JDBC para especificar los detalles de la conexión.

- 34 -

34
Docente: Ms. Zoraida Yanet Vidal Melgarejo Tema: Conexión Java – MySQL
Página - 17 -
Universidad Facultad de Ingeniería
Nacional Programa de Estudios: Ingeniería de Sistemas
de Trujillo Experiencia Curricular: Programación Orientada a Objetos II

2. Obtener la conexión

• Una base de datos en JDBC es identificada por una URL (Uniform Resource Locator).
Especifica el nombre y la ubicación de la BD. La sintáxis recomendada para la URL
JDBC es la siguiente:

jdbc:<subprotocolo>:<subnombre> Depende de la versión de NetBeans y MySQL

[Link]("[Link]");
String url="jdbc:mysql://localhost:3306/eurekabank";
String user="root";
Depende de la configuración de instalación de MySQL
String password="sa";
Connection cn = [Link](url, user, password);

- 35 -

35

3. y 4. Crear y Ejecutar el Comando

• [Link]
✓ Se utiliza el método createStatement de una instancia Connection para su
creación.

✓ Permite la ejecución de una sentencia SQL, sus métodos principales son:


o executeQuery
Sentencias SELECT que devuelve un [Link]
o executeUpdate
Sentencias INSERT, DELETE, UPDATE, CREATE, que devuelve un entero
o execute
Sentencias desconocidas en tiempo de compilación o sentencias que
devuelven resultados complejos, devuelve true/false.

- 36 -

36
Docente: Ms. Zoraida Yanet Vidal Melgarejo Tema: Conexión Java – MySQL
Página - 18 -
Universidad Facultad de Ingeniería
Nacional Programa de Estudios: Ingeniería de Sistemas
de Trujillo Experiencia Curricular: Programación Orientada a Objetos II

3. y 4. Crear y Ejecutar el Comando

• [Link]
✓ Se utiliza el método prepareStatement de una instancia Connection para su
creación.

✓ Extiende Statement para añadir sentencias precompiladas SQL, que compila la


sentencia SQL la primera vez. estas son llamadas más de una vez en el programa.

✓ Soporta parámetros de entrada: setInt, setFloat, setLong, setString

• [Link]
✓ Se utiliza el método prepareCall de una instancia Connection para su creación.

✓ Extiende la funcionalidad de PreparedStatement, permite la invocación de


procedimientos almacenados, si el manejador los soporta.

- 37 -

37

4.1. Procesar los Resultados

• [Link]
✓ Los objetos ResultSet permiten recoger los resultados de la ejecución de
sentencias SQL; estos resultados proporcionan un número variable de columnas y
de filas. En definitiva, un ResultSet es un contenedor tabular de tamaño variable.

✓ Cada objeto de tipo ResultSet contiene un cursor que inicialmente se encuentra


situado en la posición anterior a la primera fila de la tabla. Existe una serie de
métodos que permiten mover el cursor a lo largo de la tabla.

- 38 -

38
Docente: Ms. Zoraida Yanet Vidal Melgarejo Tema: Conexión Java – MySQL
Página - 19 -
Universidad Facultad de Ingeniería
Nacional Programa de Estudios: Ingeniería de Sistemas
de Trujillo Experiencia Curricular: Programación Orientada a Objetos II

4.1. Procesar los Resultados


beforeFirst()
DNI Nombre Apellido Edad
first()
1 53033776 Pedro Rodríguez 18
previous() 84609876 Ana Moreno 35 relative(-1)
Cursor 34216533 Carmen Delgado 12
next()
83421438 Jorge Castillo 25 last()

afterLast()

Todos los métodos señalados devuelven un valor de tipo boolean, que indica si el
movimiento del cursor ha sido posible. Hay que tener en cuenta que, por defecto, los
objetos ResultSet únicamente pueden ser recorridos incrementalmente, y que además
no son actualizables (no se pueden modificar sus atributos).

- 39 -

39

4.1. Procesar los Resultados


isBeforeFirst()
DNI Nombre Apellido Edad
53033776 Pedro Rodríguez 18 isFirst()
1
2 84609876 Ana Moreno 35
Cursor 34216533 Carmen Delgado 12
83421438 Jorge Castillo 25 isLast()

isAfterLast()
getString(…) getInt(…)

Una vez situado el cursor en la posición deseada, se dispone de una gran cantidad
de métodos para conocer su posición (isXxx), consultar el valor de los atributos
(getXxxx) o modificar los mismos (updateXxxx).

- 40 -

40
Docente: Ms. Zoraida Yanet Vidal Melgarejo Tema: Conexión Java – MySQL
Página - 20 -
Universidad Facultad de Ingeniería
Nacional Programa de Estudios: Ingeniería de Sistemas
de Trujillo Experiencia Curricular: Programación Orientada a Objetos II

4.1. Procesar los Resultados

• [Link]
✓ Tanto los métodos update como los métodos get están sobrecargados para
admitir dos tipos de argumentos: el nombre de la columna o la posición de la
columna: de esta manera se dispone, por ejemplo, de un método getInt(String
NombreColumna), y de otro método getInt(int IndiceColumna). Las columnas se
numeran empezando por 1.

✓ Se puede acceder a los datos de las columnas en cualquier orden por índice de
posición o nombre del campo. En el RecordSet de ejemplo, se produce el mismo
resultado con los siguientes métodos: getString(“Nombre”) y getString(2).

✓ El método next() sirve para avanzar una fila.

✓ El método wasNull() indica si el campo contiene valores nulos.

- 41 -

41

5. Liberar Recursos

• Las clases: Connection, Statement, PreparedStatement, CallableStatement y


ResultSet proveen el método close(), que activa la realización de la instancia
específica, que liberan todos los recursos JDBC que se ejecutan sobre el servidor de
datos.

• Cuando se invoca el método close() de un Statement, los ResultSet asociados son


cerrados automáticamente.

• La invocación al método close() de Connection, puede provocar un SQLException si


esta ya está cerrada.

- 42 -

42
Docente: Ms. Zoraida Yanet Vidal Melgarejo Tema: Conexión Java – MySQL
Página - 21 -
Universidad Facultad de Ingeniería
Nacional Programa de Estudios: Ingeniería de Sistemas
de Trujillo Experiencia Curricular: Programación Orientada a Objetos II

Codificación: Cargar el Driver

public static void cargarDriver() {


try {
[Link]("[Link]");
} catch(ClassNotFoundException e) {
[Link]( "Error no se puede cargar el driver:“ + [Link]());
}
}

- 43 -

43

Codificación: Conexión con la BD

try {
String url="jdbc:mysql://localhost:3306/eurekabank";
String user="root";
String password=“sa";
cn = [Link](url, user, password);
} catch(SQLException e) {
[Link](null,
"Error no se puede establecer la conexión“ + [Link]());
}

- 44 -

44
Docente: Ms. Zoraida Yanet Vidal Melgarejo Tema: Conexión Java – MySQL
Página - 22 -
Universidad Facultad de Ingeniería
Nacional Programa de Estudios: Ingeniería de Sistemas
de Trujillo Experiencia Curricular: Programación Orientada a Objetos II

Codificación: Insertar un Registro

// Se leen los datos: código y descripción de moneda.


try {
String sql="insert into moneda(monecodigo, monedescripcion) values (?,?)";
PreparedStatement ps=[Link](sql);
[Link](1, codigo);
[Link](2, descripcion);
[Link]();
} catch(SQLException e) {
[Link](null, "Error en SQL "+ [Link]());
}

- 45 -

45

Codificación: Consultar un Registro

// Se lee el código de la moneda a buscar


try {
String sql = "select * from moneda where monecodigo=?";
PreparedStatement ps= [Link](sql);
[Link](1, codigo);
ResultSet rs = [Link]();
if([Link]()) {
descripcion=[Link](2);
[Link]("Descripcion : "+descripcion);
} else
[Link]("el código de moneda no existe");
} catch(SQLException e) {
[Link]("Error en SQL "+ [Link]());
}

- 46 -

46
Docente: Ms. Zoraida Yanet Vidal Melgarejo Tema: Conexión Java – MySQL
Página - 23 -
Universidad Facultad de Ingeniería
Nacional Programa de Estudios: Ingeniería de Sistemas
de Trujillo Experiencia Curricular: Programación Orientada a Objetos II

Codificación: Eliminar un Registro

// Se lee el código de la moneda


try {
String sql = "delete from moneda where monecodigo=?";
PreparedStatement ps= [Link](sql);
[Link](1, codigo);
int nro=[Link]();
if(nro>0)
[Link]("Se eliminó el registro ");
else
[Link]("no existe el código de moneda ");
} catch(SQLException e) {
[Link]("Error en SQL "+ [Link]());
}

- 47 -

47

Codificación: Actualizar un Registro


// Se lee el código de la moneda
try {
String sql = "select * from moneda where monecodigo=?";
PreparedStatement ps= [Link](sql);
[Link](1, codigo);
ResultSet rs = [Link]();
if([Link]()) {
[Link]("Nueva Descripcion : ");
descripcion=[Link]();
sql="update moneda set monedescripcion=? where monecodigo=?";
ps=[Link](sql);
[Link](1, descripcion);
[Link]();
[Link]("Se actualizó la moneda");
} else
[Link]("El código de moneda no existe");
} catch(SQLException e) {
[Link]("Error en SQL "+[Link]());
} - 48 -

48
Docente: Ms. Zoraida Yanet Vidal Melgarejo Tema: Conexión Java – MySQL
Página - 24 -
Universidad Facultad de Ingeniería
Nacional Programa de Estudios: Ingeniería de Sistemas
de Trujillo Experiencia Curricular: Programación Orientada a Objetos II

Codificación: Mostrar todos los Registros

try{
String sql = "select * from moneda";
PreparedStatement ps = [Link](sql);
ResultSet rs = [Link]();
while([Link]()) {
monecodigo=[Link](1);
monedescripcion=[Link](2);
[Link](monecodigo + “, “ + monedescripcion);
}
} catch(SQLException e) {
[Link](null, “Error en SQL “ + [Link]());
}

- 49 -

49

Resumen

• La clase DriverManager provee acceso a drivers JDBC registrados y permite obtener


conexiones (Connection) a una fuente de datos con el método getConnection.

• La clase Connection representa una sesión sobre una base de datos y es usada
para crear comandos (Statement).

• La clase Statement y sus derivados permiten la ejecución de comandos SQL ya sean


DDL o DML, tanto para la recuperación y actualización de datos.

• La clase ResultSet contiene los datos resultantes de una consulta de selección,


mantiene el cursor a una fila de datos. El método next permite desplazarse a la
siguiente fila. Los métodos getXXX retornan el valor de las columnas de la fila actual,
dado un índice o un nombre.

- 50 -

50
Docente: Ms. Zoraida Yanet Vidal Melgarejo Tema: Conexión Java – MySQL
Página - 25 -

También podría gustarte