Conexión con JDBC#
Objetivos#
Identificar y diferenciar los tipos de bases de datos.
Conocer las características y usos de cada tipo de base de datos.
Aprender a conectar una aplicación Java con una base de datos utilizando JDBC.
Implementar una conexión básica y realizar operaciones simples sobre una base de datos relacional.
Introducción#
En el desarrollo de software, las bases de datos juegan un papel fundamental en el almacenamiento y manejo eficiente de la información. Existen varios tipos de bases de datos, cada uno diseñado para diferentes aplicaciones, y es esencial para los desarrolladores saber cómo conectarse y manipular estas bases de datos desde sus aplicaciones. En Java, la interacción con las bases de datos se realiza a través de la API JDBC (Java Database Connectivity), que proporciona un estándar para conectar aplicaciones Java con bases de datos.
En esta clase, exploraremos cómo realizar una conexión básica a una base de datos utilizando Java.
Conexión#
La conexión a una base de datos en Java se realiza a través de la API Java Database Connectivity (JDBC). JDBC proporciona una forma estandarizada de conectarse a bases de datos relacionales. El flujo básico de conexión es:
Cargar el controlador JDBC.
Establecer la conexión con la base de datos.
Crear una declaración SQL y ejecutarla.
Procesar los resultados.
Cerrar la conexión.
Ejemplo de Conexión a MySQL en Java usando JDBC#
A continuación, te mostramos cómo realizar una conexión simple a una base de datos MySQL y ejecutar una consulta básica.
Configuración de la Base de Datos#
Antes de empezar, asegúrate de tener MySQL instalado y configurado. Crea una base de datos llamada universidad
con una tabla estudiantes
.
%maven com.mysql:mysql-connector-j:9.1.0
import java.sql.*;
public class DatabaseConnection {
private static final String URL = "jdbc:mysql://127.0.0.1:3306/Universidad";
private static final String USER = "dba"; // Cambia 'root' por tu usuario de MySQL
private static final String PASSWORD = "$123456789"; // Cambia 'yourpassword' por tu contraseña de MySQL
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(URL, USER, PASSWORD);
}
}
import java.sql.*;
//Creación de la tabla
public class CreateTable {
public static void Create() {
String query = """
CREATE TABLE IF NOT EXISTS Estudiantes (
`matricula` INT NOT NULL AUTO_INCREMENT,
`nombre` VARCHAR(50) NOT NULL,
`edad` INT NULL DEFAULT NULL,
`fechaNacimiento` DATE NULL DEFAULT NULL,
`direccion` VARCHAR(100) NULL DEFAULT NULL,
`telefono` VARCHAR(15) NULL DEFAULT NULL,
`correoElectronico` VARCHAR(100) NULL DEFAULT NULL,
PRIMARY KEY (`matricula`)
);
""";;
try (Connection connection = DatabaseConnection.getConnection();
Statement stmt = connection.createStatement()) {
// Usando el método executeUpdate
int result = stmt.executeUpdate(query);
System.out.println(result);
// Usando el método execute
boolean result1 = stmt.execute(query);
System.out.println(result1);
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Create();
}
}
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class InsertStudent {
public static void insert(int matricula, String nombre, int edad, String fechaNacimiento, String direccion, String telefono, String correoElectronico) {
String query = "INSERT INTO Estudiantes (matricula, nombre, edad, fechaNacimiento, direccion, telefono, correoElectronico) VALUES (?, ?, ?, ?, ?, ?, ?)";
try (Connection connection = DatabaseConnection.getConnection();
PreparedStatement preparedStatement = connection.prepareStatement(query)) {
preparedStatement.setInt(1, matricula);
preparedStatement.setString(2, nombre);
preparedStatement.setInt(3, edad);
preparedStatement.setString(4, fechaNacimiento);
preparedStatement.setString(5, direccion);
preparedStatement.setString(6, telefono);
preparedStatement.setString(7, correoElectronico);
int rowsInserted = preparedStatement.executeUpdate();
System.out.println("Estudiante insertado correctamente: " + rowsInserted);
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
insert(1, "Sebastian", 27, "2024-12-12", "calle ", "3195140529", "saguileran@itc.edu.co");
}
}
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class SelectEstudents {
public static void selectAll() {
String query = "SELECT * FROM Estudiantes";
try (Connection connection = DatabaseConnection.getConnection();
PreparedStatement preparedStatement = connection.prepareStatement(query)) {
ResultSet resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
int matricula = resultSet.getInt("matricula");
String nombre = resultSet.getString("nombre");
int edad = resultSet.getInt("edad");
System.out.println("id: " + matricula + ", Nombre: " + nombre + ", Edad: " + edad);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
selectAll();
}
}
new CreateTable().main(null);
//new InsertStudent().insert(1, "Sebastian", 27, "2024-12-12", "calle ", "3195140529", "saguileran@itc.edu.co");
new SelectEstudents().selectAll();
0
false