Acceso A Datos (T2)
Acceso A Datos (T2)
relacionales
Tema 2. Acceso a datos
• Conocer las APIs que proporcionan conectores a
bases de datos, en particular JDBC.
• Comprender el desfase objeto-relacional.
Objetivos • Abrir una conexión a una base de datos JDBC
mediante drivers.
• Escribir programas en Java utilizando JDBC para
ejecutar sentencias SQL: de definición de datos y
de modificación y consulta de datos.
• Utilizar sentencias preparadas para ejecutar
sentencias de SQL de manera eficiente.
• Trabajar con transacciones.
Sistemas de bases de datos relacionales
Ventajas
• No hay que instalar ninguna biblioteca en el cliente
• Mejor rendimiento
• La mejor opción para aplicaciones distribuidas por
internet
Desventajas
• Capa intermedia específica para cada SGBD
Protocolo nativo / Java
Ventajas
• No hay que instalar ninguna biblioteca en el cliente
• Mejor rendimiento
• La mejor opción para aplicaciones distribuidas por
internet
Desventajas
• Capa intermedia específica para cada SGBD
Conexiones JDBC
jdbc:<subprotocolo>:<subnombre>
• jdbc: indica el protocolo.
• Subprotocolo: indica el driver
• Subnombre: indica la sintaxis
jdbc:mysql:empleados ; jdbc:odbc:empleados
Operaciones básicas JDBC
Cargar Driver
• Class.forName("com.mysql.jdbc.Driver");
Crear conexión
• c = DriverManager.getConnection(url,…);
Operaciones básicas JDBC
Crear sentencia
• s = c.CreateStatement();
Ejecutar sentencia
• s.executeQuery(…)
• s.execute(…)
Operaciones básicas JDBC
Cerrar sentencia
• s.close();
Cerrar conexión
• c.close();
Instalación de un servidor de base de datos MySQL
• Host
• Port
• User
• Password
• Parametros de conexión
Driver para la conexión
Uso con Maven
• POM.xml
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.21</version>
</dependency>
</dependencies>
Interfaz Statement
statement.executeUpdate(sentenciaSQL);
statement.close();
Tipos de sentencias
.next() .getXXX(string)
.previous()
.getXXX(int)
.first()
.last()
.absolute(int pos) .close()
Sentencias preparadas
Métodos de Statement
• Int ExecuteUpdate(String, int autoGeneratedKeys)
• Statement.RETURN_GENERATED_KEYS
• Statement.NO_GENERATED_KEYS
• ResultSet getGeneratedKeys()
Claves autogeneradas
Hacer un programa en Swing que muestre el
contenido de la base de datos en una tabla.
Modificar el anterior para hacer una aplicación CRUD
sobre una tabla (create, remove, update & delete)
Multiples tablas
Multiples tablas
START TRANSACTION
Operacion1
Operacion2
…
ROLLBACK
...
COMMIT
Transacciones
interés • http://www.javahispano.org/storage/contenidos/serializaci
on.pdf
• http://www.mclibre.org/consultar/xml/lecciones/xml_que
es.html
• http://howtodoinjava.com/2014/07/30/dom-vs-sax-parser-
in-java/
• https://www.mclibre.org/consultar/xml/lecciones/xml-
xpath.html