0% encontró este documento útil (0 votos)
56 vistas

T08 Conexión Java - MySQL

El documento describe la arquitectura de una aplicación Java que se conecta a una base de datos. Explica que la aplicación se ejecuta en la máquina virtual de Java (JVM) y que JDBC permite la conexión entre la aplicación y diferentes tipos de bases de datos a través del sistema operativo y controladores. También define a JDBC como una interfaz estándar que permite ejecutar instrucciones SQL y recuperar resultados de la base de datos.
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
56 vistas

T08 Conexión Java - MySQL

El documento describe la arquitectura de una aplicación Java que se conecta a una base de datos. Explica que la aplicación se ejecuta en la máquina virtual de Java (JVM) y que JDBC permite la conexión entre la aplicación y diferentes tipos de bases de datos a través del sistema operativo y controladores. También define a JDBC como una interfaz estándar que permite ejecutar instrucciones SQL y recuperar resultados de la base de datos.
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 23

Universidad Nacional Facultad de Ingeniería

de Trujillo Escuela Profesional de Ingeniería de Sistemas

PROGRAMACIÓN
ORIENTADA A OBJETOS II
Ms. Zoraida Yanet VIDAL MELGAREJO
[email protected]

Sesión 08

Java Data Base


Connectivity (JDBC)

Curso: Programación Orientada a Objetos II Tema: Conexión Java – MySQL


Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 1 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Escuela Profesional de Ingeniería de Sistemas

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-

Curso: Programación Orientada a Objetos II Tema: Conexión Java – MySQL


Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 2 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Escuela Profesional de Ingeniería de Sistemas

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-

Curso: Programación Orientada a Objetos II Tema: Conexión Java – MySQL


Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 3 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Escuela Profesional de Ingeniería de Sistemas

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-

Curso: Programación Orientada a Objetos II Tema: Conexión Java – MySQL


Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 4 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Escuela Profesional de Ingeniería de Sistemas

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 java.sql y javax.sql.

• 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 -

Curso: Programación Orientada a Objetos II Tema: Conexión Java – MySQL


Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 5 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Escuela Profesional de Ingeniería de Sistemas

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 -

Java Data Base Connectivity (JDBC)

- 12 -

Curso: Programación Orientada a Objetos II Tema: Conexión Java – MySQL


Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 6 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Escuela Profesional de Ingeniería de Sistemas

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. El controlador de puente
JDBC-ODBC convierte las llamadas a métodos JDBC en llamadas a funciones
ODBC. El controlador de tipo 1 también se 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.

- 13 -

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.

- 14 -

Curso: Programación Orientada a Objetos II Tema: Conexión Java – MySQL


Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 7 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Escuela Profesional de Ingeniería de Sistemas

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.

- 15 -

Java Data Base Connectivity (JDBC)

• Native API

 Traduce Java al API de la Base de Datos.

- 16 -

Curso: Programación Orientada a Objetos II Tema: Conexión Java – MySQL


Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 8 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Escuela Profesional de Ingeniería de Sistemas

Java Data Base Connectivity (JDBC)

• Middleware
 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.
 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.

- 17 -

Java Data Base Connectivity (JDBC)

• Middleware
 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.
 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.

- 18 -

Curso: Programación Orientada a Objetos II Tema: Conexión Java – MySQL


Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 9 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Escuela Profesional de Ingeniería de Sistemas

Java Data Base Connectivity (JDBC)

• Net Protocol
 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.

- 19 -

Java Data Base Connectivity (JDBC)

• Net Protocol

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

- 20 -

Curso: Programación Orientada a Objetos II Tema: Conexión Java – MySQL


Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 10 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Escuela Profesional de Ingeniería de Sistemas

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.

- 21 -

Java Data Base Connectivity (JDBC)

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

- 22 -

Curso: Programación Orientada a Objetos II Tema: Conexión Java – MySQL


Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 11 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Escuela Profesional de Ingeniería de Sistemas

Sesión 08

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

Uso de JDBC para la ejecución de


comandos SQL
Cargar/Registrar
Class.forName(“nombre_driver”); 1
el Driver JDBC

DriverManager.getConnection(url, Obtener
usuario,contraseña); 2
la Conexión

conn.createStatement();
Crear
conn.prepareStatement(sql); 3
el Comando
conn.prepareCall(sql);

stmt.executeQuery(); Ejecutar
4
stmt.executeUpdate(); el Comando (select)

(create,alter,drop) DDL Procesar


4.1
(insert,update,delete) DML los Resultados

stmt.close();
Liberar Recursos 5
conn.close();
- 24 -

Curso: Programación Orientada a Objetos II Tema: Conexión Java – MySQL


Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 12 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Escuela Profesional de Ingeniería de Sistemas

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 java.sql.DriverManager

2. Obtener la Conexión.
• Se obtiene una instancia de tipo java.sql.Connection mediante el DriverManager

3. Crear el Comando.
• Desde una instancia de Connection se pueden crear:
 Comandos Estáticos (java.sql.Statement)
 Comandos Dinámicos (java.sql.PreparedStatement)
 Llamadas a Procedimientos Almacenados (java.sql.CallableStatement)

- 25 -

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 java.sql.ResultSet, 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.

- 26 -

Curso: Programación Orientada a Objetos II Tema: Conexión Java – MySQL


Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 13 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Escuela Profesional de Ingeniería de Sistemas

La clase
java.sql.DriverManager

• Provee servicios para administrar un conjunto de drivers JDBC.

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


Class.forName()) 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.

- 27 -

La clase java.sql.DriverManager

• 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 jdbc.drivers
 El gestor cargado debería registrarse con el método registerDriver

• java.sql.Driver
 Gestor de información y configuración general que se carga durante la
inicialización mediante:
o DriverManager.registerDriver
o Class.forName
 Se le pedirá información a lo largo del programa, residirá en memoria, dentro sus
métodos más importantes: connect y getPropertyInfo.

- 28 -

Curso: Programación Orientada a Objetos II Tema: Conexión Java – MySQL


Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 14 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Escuela Profesional de Ingeniería de Sistemas

1. Cargar / registrar el driver JDBC

• Instrucciones para la carga del driver:

Class.forName(“nombre_driver”);

• Para cargar el driver de MySQL colocaremos lo siguiente:

Class.forName("com.mysql.cj.jdbc.Driver");

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

- 29 -

2. Obtener la conexión

• java.sql.Connection
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 java.sql.Connection 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.

- 30 -

Curso: Programación Orientada a Objetos II Tema: Conexión Java – MySQL


Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 15 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Escuela Profesional de Ingeniería de Sistemas

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

Class.forName("com.mysql.cj.jdbc.Driver");
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 = DriverManager.getConnection(url, user, password);

- 31 -

3. y 4. Crear y Ejecutar el Comando

• java.sql.Statement
 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 java.sql.ResultSet
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.

- 32 -

Curso: Programación Orientada a Objetos II Tema: Conexión Java – MySQL


Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 16 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Escuela Profesional de Ingeniería de Sistemas

3. y 4. Crear y Ejecutar el Comando

• java.sql.PreparedStatement
 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

• java.sql.CallableStatement
 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.

- 33 -

4.1. Procesar los Resultados

• java.sql.ResultSet
 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.

- 34 -

Curso: Programación Orientada a Objetos II Tema: Conexión Java – MySQL


Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 17 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Escuela Profesional de Ingeniería de Sistemas

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

- 35 -

4.1. Procesar los Resultados


isBeforeFirst()
DNI Nombre Apellido Edad
isFirst()
1 53033776 Pedro Rodríguez 18
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).

- 36 -

Curso: Programación Orientada a Objetos II Tema: Conexión Java – MySQL


Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 18 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Escuela Profesional de Ingeniería de Sistemas

4.1. Procesar los Resultados

• java.sql.ResultSet
 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.

- 37 -

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.

- 38 -

Curso: Programación Orientada a Objetos II Tema: Conexión Java – MySQL


Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 19 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Escuela Profesional de Ingeniería de Sistemas

Codificación: Cargar el Driver

public static void cargarDriver() {


try {
Class.forName("com.mysql.cj.jdbc.Driver");
} catch(ClassNotFoundException e) {
System.out.println( "Error no se puede cargar el driver:“ + e.getMessage());
}
}

- 39 -

Codificación: Conexión con la BD

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

- 40 -

Curso: Programación Orientada a Objetos II Tema: Conexión Java – MySQL


Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 20 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Escuela Profesional de Ingeniería de Sistemas

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=cn.prepareStatement(sql);
ps.setString(1, codigo);
ps.setString(2, descripcion);
ps.executeUpdate();
} catch(SQLException e) {
JOptionPane.showMessageDialog(null, "Error en SQL "+ e.getMessage());
}

- 41 -

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= cn.prepareStatement(sql);
ps.setString(1, codigo);
ResultSet rs = ps.executeQuery();
if(rs.next()) {
descripcion=rs.getString(2);
System.out.println("Descripcion : "+descripcion);
} else
System.out.println("el código de moneda no existe");
} catch(SQLException e) {
System.out.println("Error en SQL "+ e.getMessage());
}

- 42 -

Curso: Programación Orientada a Objetos II Tema: Conexión Java – MySQL


Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 21 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Escuela Profesional de Ingeniería de Sistemas

Codificación: Eliminar un Registro

// Se lee el código de la moneda


try {
String sql = "delete from moneda where monecodigo=?";
PreparedStatement ps= cn.prepareStatement(sql);
ps.setString(1, codigo);
int nro=ps.executeUpdate();
if(nro>0)
System.out.println("Se eliminó el registro ");
else
System.out.println("no existe el código de moneda ");
} catch(SQLException e) {
System.out.println("Error en SQL "+ e.getMessage());
}

- 43 -

Codificación: Actualizar un Registro


// Se lee el código de la moneda
try {
String sql = "select * from moneda where monecodigo=?";
PreparedStatement ps= cn.prepareStatement(sql);
ps.setString(1, codigo);
ResultSet rs = ps.executeQuery();
if(rs.next()) {
System.out.println("Nueva Descripcion : ");
descripcion=br.readLine();
sql="update moneda set monedescripcion=? where monecodigo=?";
ps=cn.prepareStatement(sql);
ps.setString(1, descripcion);
ps.executeUpdate();
System.out.println("Se actualizó la moneda");
} else
System.out.println("El código de moneda no existe");
} catch(SQLException e) {
System.out.println("Error en SQL "+e.getMessage());
} - 44 -

Curso: Programación Orientada a Objetos II Tema: Conexión Java – MySQL


Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 22 -
Universidad Nacional Facultad de Ingeniería
de Trujillo Escuela Profesional de Ingeniería de Sistemas

Codificación: Mostrar todos los Registros

try{
String sql = "select * from moneda";
PreparedStatement ps = cn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while(rs.next()) {
monecodigo=rs.getString(1);
monedescripcion=rs.getString(2);
System.out.println(monecodigo + “, “ + monedescripcion);
}
} catch(SQLException e) {
JOptionPane.showMessageDialog(null, “Error en SQL “ + e.getMessage());
}

- 45 -

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.

- 46 -

Curso: Programación Orientada a Objetos II Tema: Conexión Java – MySQL


Docente: Ms. Zoraida Yanet Vidal Melgarejo Página - 23 -

También podría gustarte