Introducción al trabajo con bases de datos en Java
Java es uno de los lenguajes más populares para crear aplicaciones empresariales, y el trabajo con bases de datos (BD) es una parte esencial de dichos proyectos. En el mundo moderno, los desarrolladores a menudo se enfrentan a la elección entre bases de datos relacionales y no relacionales. En este artículo, analizaremos en detalle cómo conectarse y trabajar con dos sistemas populares: PostgreSQL (BD relacional) y MongoDB (BD NoSQL orientada a documentos) desde Java. Aprenderá sobre la configuración de controladores, la ejecución de operaciones CRUD y las mejores prácticas.
1. Trabajo con PostgreSQL en Java
PostgreSQL es una potente base de datos objeto-relacional de código abierto. Para interactuar con ella desde Java se utiliza el controlador JDBC (Java Database Connectivity).
1.1 Conexión del controlador PostgreSQL
Para empezar, agregue la dependencia a su proyecto (Maven):
<dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>42.7.1</version></dependency>1.2 Establecimiento de la conexión y ejecución de consultas
Ejemplo de conexión a la base de datos mydb en el servidor local:
import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;
public class PostgresExample { public static void main(String[] args) { String url = "jdbc:postgresql://localhost:5432/mydb"; String user = "postgres"; String password = "password";
try (Connection conn = DriverManager.getConnection(url, user, password); Statement stmt = conn.createStatement()) {
// Creación de tabla stmt.executeUpdate("CREATE TABLE IF NOT EXISTS users (id SERIAL PRIMARY KEY, name VARCHAR(100), email VARCHAR(100))");
// Inserción de datos stmt.executeUpdate("INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com')");
// Consulta de datos ResultSet rs = stmt.executeQuery("SELECT * FROM users"); while (rs.next()) { System.out.println("ID: " + rs.getInt("id") + ", Name: " + rs.getString("name")); } } catch (Exception e) { e.printStackTrace(); } }}1.3 Uso de PreparedStatement
Para protegerse contra inyecciones SQL, use siempre PreparedStatement:
String sql = "INSERT INTO users (name, email) VALUES (?, ?)";try (PreparedStatement pstmt = conn.prepareStatement(sql)) { pstmt.setString(1, "Bob"); pstmt.setString(2, "bob@example.com"); pstmt.executeUpdate();}2. Trabajo con MongoDB en Java
MongoDB es una base de datos NoSQL que almacena datos en forma de documentos similares a JSON. Para trabajar con ella se utiliza el MongoDB Java Driver oficial.
2.1 Conexión del controlador MongoDB
Agregue la dependencia en Maven:
<dependency> <groupId>org.mongodb</groupId> <artifactId>mongodb-driver-sync</artifactId> <version>4.11.1</version></dependency>2.2 Conexión a la base de datos y operaciones CRUD
Ejemplo de trabajo con la colección users:
import com.mongodb.client.MongoClient;import com.mongodb.client.MongoClients;import com.mongodb.client.MongoCollection;import com.mongodb.client.MongoDatabase;import org.bson.Document;
public class MongoDBExample { public static void main(String[] args) { // Conexión try (MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017")) { MongoDatabase database = mongoClient.getDatabase("mydb"); MongoCollection<Document> collect