Trabajo con bases de datos en Java: PostgreSQL y MongoDB para principiantes
\n\nEn el desarrollo moderno con Java, la capacidad de trabajar con bases de datos (BD) es una de las habilidades clave. Independientemente de si estás creando una aplicación web, un servicio móvil o un sistema corporativo, necesitarás almacenar, recuperar y procesar datos. En este artículo, analizaremos dos sistemas populares de gestión de bases de datos (SGBD): el relacional PostgreSQL y el orientado a documentos MongoDB. Aprenderás cómo conectarte a ellos desde una aplicación Java, realizar operaciones básicas y comprenderás en qué casos elegir una u otra tecnología. El material está orientado a desarrolladores principiantes, por lo que todos los ejemplos de código son lo más simples posible y están acompañados de comentarios.
\n\n1. Fundamentos del trabajo con PostgreSQL en Java
\n\nPostgreSQL es un potente SGBD objeto-relacional de código abierto. Para interactuar con él desde Java se utiliza el controlador JDBC (Java Database Connectivity). Veamos el proceso paso a paso de conexión y ejecución de consultas.
\n\n1.1. Conexión del controlador y configuración
\n\nLo primero es agregar la dependencia a tu proyecto. Si usas Maven, agrega el siguiente bloque en pom.xml:
<dependency>\n <groupId>org.postgresql</groupId>\n <artifactId>postgresql</artifactId>\n <version>42.7.1</version>\n</dependency>\n\nPara Gradle, agrega la línea en build.gradle:
implementation 'org.postgresql:postgresql:42.7.1'\n\n1.2. Creación de tabla e inserción de datos
\n\nSupongamos que tenemos una base de datos testdb con el usuario user y la contraseña pass. Crearemos una tabla simple users y agregaremos algunos registros.
import java.sql.*;\n\npublic class PostgresExample {\n public static void main(String[] args) {\n String url = "jdbc:postgresql://localhost:5432/testdb";\n String user = "user";\n String password = "pass";\n\n try (Connection conn = DriverManager.getConnection(url, user, password);\n Statement stmt = conn.createStatement()) {\n\n // Creación de la tabla\n String createTableSQL = "CREATE TABLE IF NOT EXISTS users (" +\n "id SERIAL PRIMARY KEY, " +\n "name VARCHAR(100) NOT NULL, " +\n "email VARCHAR(100) UNIQUE)";\n stmt.executeUpdate(createTableSQL);\n System.out.println("Tabla creada o ya existe.");\n\n // Inserción de datos\n String insertSQL = "INSERT INTO users (name, email) VALUES " +\n "('Iván Petrov', 'ivan@example.com'), " +\n "('María Smirnova', 'maria@example.com')";\n int rowsInserted = stmt.executeUpdate(insertSQL);\n System.out.println("Filas agregadas: " + rowsInserted);\n\n } catch (SQLException e) {\n e.printStackTrace();\n }\n }\n}\n\n1.3. Lectura de datos con PreparedStatement
\n\nPara trabajar de forma segura con la entrada del usuario, utiliza PreparedStatement. Esto previene las inyecciones SQL.
String selectSQL = "SELECT * FROM users WHERE name LIKE ?";\ntry (PreparedStatement pstmt = conn.prepareStatement(selectSQL)) {\n pstmt.setString(1, "%Iván%");\n ResultSet rs = pstmt.executeQuery();\n\n while (rs.next()) {\n int id = rs.getInt("id");\n String name = rs.getString("name");\n String email = rs.getString("email");\n System.out.println("ID: " + id + ", Nombre: " + name + ", Email: " + email);\n }\n} catch (SQLException e) {\n e.printStackTrace();\n}\n\nComo puedes ver, trabajar con PostgreSQL en Java es estándar y está bien documentado