Trabajo con bases de datos en Java: PostgreSQL y MongoDB

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 al trabajo con bases de datos en Java



El desarrollo moderno en Java rara vez prescinde de la interacción con sistemas de almacenamiento de datos. La elección entre bases de datos relacionales (SQL) y no relacionales (NoSQL) es una de las tareas arquitectónicas clave. En este artículo, utilizando PostgreSQL (un SGBD relacional clásico) y MongoDB (NoSQL orientado a documentos) como ejemplos, analizaremos los enfoques principales, las mejores prácticas y proporcionaremos ejemplos de código listos para usar. El material será útil tanto para desarrolladores principiantes como para aquellos con experiencia que deseen sistematizar sus conocimientos.



1. Conexión y trabajo con PostgreSQL en Java



1.1 Configuración del controlador JDBC



PostgreSQL es una de las bases de datos relacionales más populares. Para trabajar con ella desde Java se utiliza el controlador JDBC. Agregue la dependencia en pom.xml (Maven):



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


Después de agregar el controlador, se puede establecer la conexión:



import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;

public class PostgresConnection { public static void main(String[] args) { String url = "jdbc:postgresql://localhost:5432/mydb"; String user = "admin"; 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 (Create, Read, Update, Delete)



Consideremos un ejemplo de trabajo con la tabla users. Creación de un registro:



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


Lectura de datos:



String selectSQL = "SELECT * FROM users WHERE id = ?";try (PreparedStatement pstmt = conn.prepareStatement(selectSQL)) {    pstmt.setInt(1, 1);    ResultSet rs = pstmt.executeQuery();    while (rs.next()) {        System.out.println(rs.getString("name") + " - " + rs.getString("email"));    }}


La actualización y eliminación se realizan de manera similar mediante UPDATE y DELETE usando PreparedStatement. Utilice siempre consultas parametrizadas; esto protege contra la inyección SQL.



1.3 Uso de un pool de conexiones (HikariCP)



En producción, no se recomienda abrir una nueva conexión para cada solicitud. Utilice un pool de conexiones. Agregue la dependencia:



<dependency>    <groupId>com.zaxxer</groupId>    <artifactId>HikariCP</artifactId>    <version>5.0.1</version></dependency>


Configuración:



HikariConfig config = new HikariConfig();config.setJdbcUrl("jdbc:postgresql://localhost:5432/mydb");config.setUsername("admin");config.setPassword("secret");config.setMaximumPoolSize(10);

HikariDataSource ds = new HikariDataSource(config);Connection conn = ds.getConnection();


2. Conexión y trabajo con MongoDB en Java



2.1 Configuración del controlador MongoDB Java



MongoDB almacena datos en un formato de documentos similares a JSON. Para trabajar con él se utiliza el controlador oficial. Dependencia Maven:



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


Conexión a una base de datos local:





                
                

Blogs

Book Recommendations