En aquest mòdul, aprendrem com integrar MongoDB amb Java. Explorarem les biblioteques i eines necessàries, veurem exemples pràctics de codi i realitzarem exercicis per consolidar els coneixements.
Continguts
Introducció a MongoDB amb Java
MongoDB és una base de dades NoSQL que es pot integrar fàcilment amb aplicacions Java utilitzant el controlador oficial de MongoDB per a Java. Aquest controlador proporciona una API rica per interactuar amb MongoDB de manera eficient.
Conceptes Clau
- MongoClient: La classe principal per connectar-se a MongoDB.
- MongoDatabase: Representa una base de dades específica.
- MongoCollection: Representa una col·lecció dins d'una base de dades.
- Document: Representa un document BSON (similar a JSON) dins d'una col·lecció.
Configuració del Projecte
Pas 1: Crear un Projecte Java
- Obre el teu IDE preferit (Eclipse, IntelliJ IDEA, etc.).
- Crea un nou projecte Java.
Pas 2: Afegir les Dependències de MongoDB
Si utilitzes Maven, afegeix la següent dependència al teu pom.xml:
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-sync</artifactId>
<version>4.3.1</version>
</dependency>Pas 3: Connectar-se a MongoDB
Crea una classe Java per gestionar la connexió a MongoDB:
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoDatabase;
public class MongoDBConnection {
public static void main(String[] args) {
// Connexió a MongoDB
MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017");
// Accedir a la base de dades
MongoDatabase database = mongoClient.getDatabase("mydatabase");
System.out.println("Connexió exitosa a la base de dades: " + database.getName());
// Tancar la connexió
mongoClient.close();
}
}Operacions CRUD amb Java
Crear Documents
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
public class CreateDocument {
public static void main(String[] args) {
MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017");
MongoDatabase database = mongoClient.getDatabase("mydatabase");
MongoCollection<Document> collection = database.getCollection("mycollection");
Document document = new Document("name", "John Doe")
.append("age", 30)
.append("city", "New York");
collection.insertOne(document);
System.out.println("Document inserit amb èxit");
mongoClient.close();
}
}Llegir Documents
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
public class ReadDocument {
public static void main(String[] args) {
MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017");
MongoDatabase database = mongoClient.getDatabase("mydatabase");
MongoCollection<Document> collection = database.getCollection("mycollection");
FindIterable<Document> documents = collection.find();
for (Document doc : documents) {
System.out.println(doc.toJson());
}
mongoClient.close();
}
}Actualitzar Documents
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
import com.mongodb.client.model.Updates;
import org.bson.Document;
public class UpdateDocument {
public static void main(String[] args) {
MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017");
MongoDatabase database = mongoClient.getDatabase("mydatabase");
MongoCollection<Document> collection = database.getCollection("mycollection");
collection.updateOne(Filters.eq("name", "John Doe"), Updates.set("age", 31));
System.out.println("Document actualitzat amb èxit");
mongoClient.close();
}
}Eliminar Documents
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
import org.bson.Document;
public class DeleteDocument {
public static void main(String[] args) {
MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017");
MongoDatabase database = mongoClient.getDatabase("mydatabase");
MongoCollection<Document> collection = database.getCollection("mycollection");
collection.deleteOne(Filters.eq("name", "John Doe"));
System.out.println("Document eliminat amb èxit");
mongoClient.close();
}
}Exercicis Pràctics
Exercici 1: Crear i Llegir Documents
- Crea una col·lecció anomenada
studentsi insereix diversos documents amb els campsname,ageicourse. - Llegeix tots els documents de la col·lecció
studentsi mostra'ls per pantalla.
Solució
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
public class StudentCRUD {
public static void main(String[] args) {
MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017");
MongoDatabase database = mongoClient.getDatabase("mydatabase");
MongoCollection<Document> collection = database.getCollection("students");
// Crear documents
Document student1 = new Document("name", "Alice")
.append("age", 22)
.append("course", "Computer Science");
Document student2 = new Document("name", "Bob")
.append("age", 24)
.append("course", "Mathematics");
collection.insertOne(student1);
collection.insertOne(student2);
// Llegir documents
for (Document doc : collection.find()) {
System.out.println(doc.toJson());
}
mongoClient.close();
}
}Conclusió
En aquest mòdul, hem après com integrar MongoDB amb Java, configurar el projecte, i realitzar operacions CRUD bàsiques. Amb aquests coneixements, estàs preparat per començar a desenvolupar aplicacions Java que utilitzin MongoDB com a base de dades. En els següents mòduls, explorarem funcions més avançades i aplicacions del món real.
Curs de MongoDB
Mòdul 1: Introducció a MongoDB
Mòdul 2: Operacions CRUD a MongoDB
Mòdul 3: Modelatge de Dades a MongoDB
Mòdul 4: Indexació i Agregació
Mòdul 5: Funcions Avançades de MongoDB
Mòdul 6: Rendiment i Seguretat
- Optimització del Rendiment
- Còpia de Seguretat i Restauració
- Millors Pràctiques de Seguretat
- Monitorització i Alertes
