Travailler avec les bases de données en Java : PostgreSQL et MongoDB en pratique

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Introduction : pourquoi un développeur Java doit-il connaître PostgreSQL et MongoDB ?

Le développement Java moderne ne se passe que rarement d'interaction avec les bases de données. Les deux systèmes les plus populaires — la base relationnelle PostgreSQL et la base orientée documents MongoDB — couvrent 90% des tâches des applications d'entreprise. PostgreSQL est idéal pour les schémas stricts et les systèmes transactionnels, tandis que MongoDB convient aux structures de données flexibles et aux fortes charges d'écriture.

Dans cet article, nous allons examiner des exemples pratiques de connexion aux deux bases de données depuis Java, effectuer des opérations CRUD de base et comparer les approches. Ce contenu sera utile aussi bien aux débutants qu'aux développeurs expérimentés souhaitant rafraîchir leurs connaissances.



1. PostgreSQL en Java : le classique des bases relationnelles

1.1. Connexion et configuration

Pour travailler avec PostgreSQL en Java, on utilise le pilote org.postgresql:postgresql. Ajoutez la dépendance dans pom.xml (Maven) :

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

La connexion via JDBC se présente ainsi :

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

try (Connection conn = DriverManager.getConnection(url, user, password)) { System.out.println("Connexion à PostgreSQL établie !");} catch (SQLException e) { e.printStackTrace();}


1.2. Opérations CRUD en pratique

Créons une table users et effectuons des opérations de base :

// Création de la tableString 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("Table créée");}

// INSERTString insertSQL = "INSERT INTO users (name, email, age) VALUES (?, ?, ?)";try (PreparedStatement pstmt = conn.prepareStatement(insertSQL)) { pstmt.setString(1, "Ivan 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, Nom : %s, Email : %s%n", rs.getInt("id"), rs.getString("name"), rs.getString("email")); }}

Important : Utilisez toujours PreparedStatement pour vous protéger des injections SQL.



2. MongoDB en Java : la flexibilité du modèle documentaire

2.1. Connexion via le pilote synchrone MongoDB

Ajoutez dans pom.xml :

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

Connexion à une instance MongoDB locale :

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("Connexion à MongoDB établie");


2.2. Opérations CRUD avec les documents

Travaillons avec la collection users :

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

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

// CREATE — insertion d'un documentDocument user = new Document("name", "Anna Smith")

Blogs

Book Recommendations