1 Presentación de JDBC
JDBC es la API que proporciona Java para conectarnos a bases de datos e interactuar con ellas usando el lenguaje de consulta SQL. En este vídeo os expongo qué es y qué vamos a ver en estos vídeos.
🇺🇦 Слава Україні! Consulta cómo puedes ayudar a Ucrania desde España u otros países en supportukrainenow.org.
JDBC es una tecnología de Java que nos permite comunicarnos con bases de datos mediante una API que ofrece recursos para hacer consultas, queries, extraer resultados y utilizar el lenguaje SQL.
JDBC es la API que proporciona Java para conectarnos a bases de datos e interactuar con ellas usando el lenguaje de consulta SQL. En este vídeo os expongo qué es y qué vamos a ver en estos vídeos.
Como referencia, en esta serie usaré MySQL, así que no está de más recordar cómo instalarlo en Linux y MacOS. Podéis usar otras BD con drivers JDBC: PostgreSQL, Microsoft SQL Server, H2...
Por medio de comandos SQL o de una herramienta gráfica como MySQL Workbench podéis crear las tablas SQL necesarias para poder seguir el resto de la serie desde Java usando la API JDBC. Script SQL usado: https://gist.github.com/danirod/482584904e41e1ec3422266776a9ea61
Java ofrece una API en los paquetes java.sql y javax.sql para poder interactuar con SQL, pero Java no puede hablar con todas las bases de datos. Debemos proporcionarle un JAR con el Driver correspondiente con la base de datos que vayamos a usar.
Con el Driver instalado, hoy veremos cómo establecer una conexión JDBC con nuestra base de datos usando DriverManager.getConnection. En mi caso usando MySQL. La sintaxis es igual si usáis otro DBMS salvo por la URL, probablemente.
JDBC nos permite ejecutar nuestras propias sentencias SQL, y en este episodio os enseño de qué forma podéis crear vuestras propias Statement y recorrer el cursor que os devuelve mediante el uso de un ResultSet.
En este episodio os explico por qué PreparedStatement es infinitamente mejor que Statement cuando tenemos consultas con parámetros que dependen del mundo exterior. ¿Cómo? ¿No conoces a Bobby Tables? \u003ca href='https://xkcd.com/327/' target='_blank'\u003eMira esto\u003c/a\u003e.
Un inciso para recordar cómo funcionan las transacciones en un sistema de bases de datos, en qué casos nos importan y cómo MySQL implementa ACID y transacciones usando InnoDB.
La API de JDBC nos aporta una serie de métodos para diseñar transacciones desde Java, mediante los métodos commit(), rollback() y el uso o no del auto-commit.
Veamos ahora cómo se ejecuta una transacción en JDBC. Enseño qué ocurre cuando sale bien y también cómo afecta a las otras instrucciones que una de las sentencias salga mal.
En primer lugar creamos los modelos de datos que más adelante usaremos tanto en otras capas de la aplicación, como a la hora de interactuar con la propia base de datos.
Los DAO son las clases que acceden a la base de datos para cargar y guardar los modelos de nuestra aplicación. En esta primera parte creo la estructura de los DAO y en el siguiente vídeo relleno el código.
Hecha la estructura de clases de los DAO queda por crear el código propio que ejecuta las statements de MySQL a partir de los objetos propios. En este vídeo os enseño cómo hacer este mapeo.
En la última parte dedicada a DAOs, muestro cómo crear los métodos que permiten obtener elementos de la base de datos convirtiendo un ResultSet en un objeto.
Última parte sobre DAOs en la que creo un manager para poder recuperar todos los DAO mediante el uso del patrón Singleton, de modo que no tengamos más de un DAO suelto por el sistema.
Creando un JFrame con una JTable y un JTableModel que use el patrón Adapter para permitir representar los alumnos procedentes del DAO en forma de modelo que podamos incorporar a nuestra tabla.
Comenzamos a diseñar un formulario para poder visualizar, modificar, eliminar e incorporar alumnos al sistema, agregando las operaciones CRUD básicas. Lo completaremos en el siguiente episodio.
Terminamos de diseñar el formulario para gestionar los alumnos. Ahora se pide confirmar que queremos borrar alumnos, se guardan los datos en el sistema, y la barra de estado funciona correctamente.
Continuamos diseñando el formulario que se usa para introducir, visualizar, modificar y eliminar datos de los profesores que se hayan incorporado al sistema.
El episodio 20 se grabará en directo sólo por la comodidad de no tener que editarlo después. CRUD de Asignaturas.
Hacer una pantalla de login y un panel principal. He decidido adelantar el final de esta serie porque este ejemplo es demasiado repetitivo y yo quiero hacer cosas nuevas y frescas de una vez.