Travailler avec les bases de données en Java : PostgreSQL et MongoDB pour débutants
Le développement Java moderne ne se passe que rarement sans interaction avec les bases de données. Que vous créiez une application web, un service mobile ou un système d'entreprise, savoir travailler avec des bases de données SQL et NoSQL est une compétence obligatoire. Dans cet article, nous allons voir comment se connecter à PostgreSQL (base de données relationnelle) et MongoDB (base de données orientée documents) depuis Java, effectuer des opérations de base et éviter les erreurs typiques.
Ce matériel est destiné aux développeurs débutants qui connaissent déjà les bases de Java (classes, méthodes, exceptions) et souhaitent apprendre à travailler avec des données. Tous les exemples de code peuvent être copiés et exécutés dans votre environnement de développement.
1. Préparation de l'environnement et dépendances
Pour travailler avec des bases de données en Java, vous devrez ajouter les bibliothèques correspondantes. Nous utiliserons Maven pour la gestion des dépendances. Si vous utilisez Gradle ou un autre outil de build, le principe sera similaire.
Dépendances pour PostgreSQL (via JDBC)
<dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>42.7.1</version></dependency>Dépendances pour MongoDB (pilote officiel)
<dependency> <groupId>org.mongodb</groupId> <artifactId>mongodb-driver-sync</artifactId> <version>4.11.1</version></dependency>Après avoir ajouté les dépendances, mettez à jour le projet (Maven → Reload Project). Assurez-vous que les bases de données elles-mêmes sont installées et en cours d'exécution (localement ou via Docker).
2. Travailler avec PostgreSQL en Java
PostgreSQL est une base de données relationnelle classique. Pour interagir avec elle depuis Java, on utilise JDBC (Java Database Connectivity). Examinons le cycle complet : connexion, création de table, insertion et lecture de données.
2.1. Connexion à la base de données
Créons une classe PostgresConnector avec une méthode pour obtenir la connexion :
import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;
public class PostgresConnector { private static final String URL = "jdbc:postgresql://localhost:5432/testdb"; private static final String USER = "postgres"; private static final String PASSWORD = "your_password";
public static Connection getConnection() throws SQLException { return DriverManager.getConnection(URL, USER, PASSWORD); }}2.2. Création de table et insertion de données
Utilisons Statement et PreparedStatement pour exécuter des requêtes SQL :
import java.sql.*;
public class PostgresExample { public static void main(String[] args) { String createTableSQL = "CREATE TABLE IF NOT EXISTS users (" + "id SERIAL PRIMARY KEY, " + "name VARCHAR(100) NOT NULL, " + "email VARCHAR(100) UNIQUE NOT NULL)";
String insertSQL = "INSERT INTO users (name, email) VALUES (?, ?)";
try (Connection conn = PostgresConnector.getConnection(); Statement stmt = conn.createStatement()) {
// Créons la table stmt.execute(createTableSQL); System.out.println("La table users a été créée (ou existe déjà).");
// Insérons des données via PreparedStatement (sûr contre les injections SQL) try (PreparedStatement pstmt = conn.prepareStatement(insertSQL)) { pstmt.setString(1, "Ivan Petrov"); pstmt.setString(2, "ivan@example.com"); pstmt.executeUpdate(); System.out.println("Utilisateur ajouté."); }
} catch (SQLException e) { e.printStackTrac