Trabajo con bases de datos en Java: PostgreSQL y MongoDB en la práctica

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Introducción: ¿por qué un desarrollador Java debe conocer PostgreSQL y MongoDB?

El desarrollo moderno en Java rara vez prescinde de la interacción con bases de datos. Los dos sistemas más populares —la relacional PostgreSQL y la orientada a documentos MongoDB— cubren el 90% de las tareas de las aplicaciones empresariales. PostgreSQL es ideal para esquemas estrictos y sistemas transaccionales, mientras que MongoDB lo es para estructuras de datos flexibles y altas cargas de escritura.

En este artículo analizaremos ejemplos prácticos de conexión de ambas BD desde Java, realizaremos operaciones CRUD básicas y compararemos enfoques. El material será útil tanto para principiantes como para desarrolladores experimentados que deseen refrescar sus conocimientos.



1. PostgreSQL en Java: el clásico de las bases relacionales

1.1. Conexión y configuración

Para trabajar con PostgreSQL en Java se utiliza el controlador org.postgresql:postgresql. Agregue la dependencia en pom.xml (Maven):

<dependency>    <groupId>org.postgresql</groupId>    <artifactId>postgresql</artifactId>    <version>42.7.1</version></dependency>

La conexión a través de JDBC se ve así:

String url = "jdbc:postgresql://localhost:5432/mydb";String user = "postgres";String password = "secret";

try (Connection conn = DriverManager.getConnection(url, user, password)) { System.out.println("¡Conexión con PostgreSQL establecida!");} catch (SQLException e) { e.printStackTrace();}


1.2. Operaciones CRUD en la práctica

Creemos la tabla users y realicemos operaciones básicas:

// Creación de tablaString createSQL = """    CREATE TABLE IF NOT EXISTS users (        id SERIAL PRIMARY KEY,        name VARCHAR(100),        email VARCHAR(100) UNIQUE,        age INTEGER    )""";

try (Statement stmt = conn.createStatement()) { stmt.execute(createSQL); System.out.println("Tabla creada");}

// INSERTString insertSQL = "INSERT INTO users (name, email, age) VALUES (?, ?, ?)";try (PreparedStatement pstmt = conn.prepareStatement(insertSQL)) { pstmt.setString(1, "Iván Petrov"); pstmt.setString(2, "ivan@example.com"); pstmt.setInt(3, 30); pstmt.executeUpdate();}

// SELECTString selectSQL = "SELECT * FROM users WHERE age > ?";try (PreparedStatement pstmt = conn.prepareStatement(selectSQL)) { pstmt.setInt(1, 25); ResultSet rs = pstmt.executeQuery(); while (rs.next()) { System.out.printf("ID: %d, Nombre: %s, Email: %s%n", rs.getInt("id"), rs.getString("name"), rs.getString("email")); }}

Importante: Utilice siempre PreparedStatement para protegerse contra inyecciones SQL.



2. MongoDB en Java: flexibilidad del modelo documental

2.1. Conexión a través de MongoDB Sync Driver

Agregue en pom.xml:

<dependency>    <groupId>org.mongodb</groupId>    <artifactId>mongodb-driver-sync</artifactId>    <version>4.11.1</version></dependency>

Conexión a MongoDB local:

import com.mongodb.client.MongoClients;import com.mongodb.client.MongoClient;import com.mongodb.client.MongoDatabase;

MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017");MongoDatabase database = mongoClient.getDatabase("mydb");System.out.println("Conexión con MongoDB establecida");


2.2. Operaciones CRUD con documentos

Trabajamos con la colección users:

import com.mongodb.client.MongoCollection;import org.bson.Document;import static com.mongodb.client.model.Filters.*;

MongoCollection<Document> collection = database.getCollection("users");

// CREATE — inserción de documentoDocument user = new Document("name", "Ana Smith");

Blogs

Book Recommendations