1.1 Idea general
De todos los métodos de acceso a bases de datos que ya vimos vamos a trabajar con JDBC - Java Database Connectivity.
El primer paso para poder acceder a una base de datos y poder ejecutar consultas en ella es disponer de una conexión válida. Para ello necesitaremos:
- Disponer de un driver adecuado para el SGBDR que queremos utilizar.
- Conocer los parámetros de conexión (dirección IP, nombre de la base de datos, usuario de acceso, clave...)
Driver de Base de Datos: Es el software que permite la comunicación entre la aplicación y la base de datos. Actúa como un traductor o intermediario entre el programa y la base de datos: la aplicación usa una interfaz estándar, como JDBC en Java, y el driver se encarga de convertir esas instrucciones en llamadas que entiende el SGBD específico.
1.2 Ejemplo
Empezaremos creando una conexión con SQLite:
Descarga el Driver
Una vez hayas creado la carpeta para tu proyecto, conéctate al repositorio de maven y busca "SQLite JDBC driver". Los drivers JDBC son librerías de Java, así que puedes descargar el archivo .jar y copiarlo a tu directorio de proyecto. Elige bien el driver, pues hay varias organizaciones que los desarrollan. Para este ejemplo he elegido la versión 3.51.3.0 de org.xerial.
Crea la base de datos
Utiliza el programa DB Browser for SQLite para crear la base de datos con el siguiente script SQL:
-- Tabla principal: Autor
CREATE TABLE Autor (
id INTEGER PRIMARY KEY AUTOINCREMENT,
nombre TEXT NOT NULL,
nacionalidad TEXT
);
-- Tabla relacionada: Obras (1 autor puede tener muchas obras)
CREATE TABLE Obra (
id INTEGER PRIMARY KEY AUTOINCREMENT,
id_autor INTEGER NOT NULL,
titulo TEXT NOT NULL,
ano_publicacion INTEGER,
FOREIGN KEY (id_autor) REFERENCES Autor(id)
);
Guarda el fichero en el directorio de proyecto con el nombre "autores.sqlite".
Escribe el código
Programamos una prueba de concepto para realizar la conexión.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConexionSQLite {
public static void main(String[] args) {
String url = "jdbc:sqlite:autores.sqlite";
try (Connection conexion = DriverManager.getConnection(url)) {
System.out.println("Conexión establecida correctamente.");
} catch (SQLException e) {
System.out.println("Error al conectar con la base de datos.");
System.out.println(e.getMessage());
}
}
}
Una vez hecho, tu directorio de proyecto será así:
.
├── autores.sqlite
├── ConexionSQLite.java
└── sqlite-jdbc-3.51.3.0.jar
Compila y Ejecuta
Compila el programa con:
javac ConexionSQLite.java
Ejecuta enlazando la librería:
(en linux) java -cp sqlite-jdbc-3.51.3.0.jar:. ConexionSQLite
(en windows) java -cp sqlite-jdbc-3.51.3.0.jar;. ConexionSQLite
Debes ver en la consola el mensaje "Conexión establecida correctamente."
Compruébalo
Haz algunas pruebas: escribe mal el nombre de la base de datos, quita el driver, etc. para comprobar que todo funciona como debe.