Integration af NoSQL-databaser
Lær at integrere og arbejde med NoSQL-databaser som MongoDB eller Redis ved hjælp af Spring Data.
Integration af NoSQL-databaser er en gratis Komplet guide til Spring Boot 4-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Komplet guide til Spring Boot 4, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Komplet guide til Spring Boot 4-kurset indeholder 4 lektioner i alt.
Introduktion til NoSQL-databaser
Traditionelle databaser (som SQL) gemmer data i strukturerede tabeller. NoSQL-databaser tilbyder et fleksibelt alternativ, der er ideelt til håndtering af store mængder ustrukturerede eller semistrukturerede data.
- Ikke-relationelle: Intet fast skema.
- Skalerbare: Kan nemt skaleres horisontalt.
- Forskellige modeller: Dokument, nøgle-værdi, graf og kolonnefamilie.
De er velegnede til big data, webapps i realtid og mikrotjenester.
Spring Datas rolle i NoSQL
Ligesom med JPA leverer Spring Data en ensartet og velkendt programmeringsmodel til interaktion med forskellige NoSQL-databaser.
Det forenkler dataadgangen ved at:
- reducere overflødig standardkode
- tilbyde repository-interfaces
- håndtere databasespecifikke handlinger
Du får den velkendte Spring-oplevelse, selv med ikke-relationelle datalagre!
Vores NoSQL-eksempel: MongoDB
Der findes mange NoSQL-databaser, f.eks. Redis (nøgle-værdi), Cassandra (kolonnefamilie) og Neo4j (graf). I denne lektion fokuserer vi på MongoDB, en populær dokumentorienteret database.
I MongoDB gemmes data i fleksible, JSON-lignende dokumenter kaldet BSON, som grupperes i samlinger.
Tilføj MongoDB-afhængigheden
Først skal vi tilføje Spring Data MongoDB-startafhængigheden til vores projekt. Den henter alle nødvendige biblioteker til at oprette forbindelse til MongoDB.
Til Maven skal du tilføje dette til din pom.xml:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>Konfigurer MongoDB-forbindelsen
Fortæl derefter Spring Boot, hvordan der skal oprettes forbindelse til din MongoDB-instans. Det gør du typisk i din application.properties- eller application.yml-fil.
Her er en grundlæggende konfiguration til en lokal MongoDB:
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.database=mydatabaseDefiner dit MongoDB-dokument
I MongoDB gemmes data i dokumenter. Vi repræsenterer disse dokumenter i Java ved hjælp af simple POJO'er (Plain Old Java Objects). Brug Spring Data MongoDB-annoteringer som @Document og @Id.
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
@Document(collection = "products")
public class Product {
@Id
private String id;
private String name;
private double price;
public Product(String name, double price) {
this.name = name;
this.price = price;
}
// Getters and Setters (omitted for brevity)
public String getId() { return id; }
public void setId(String id) { this.id = id; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public double getPrice() { return price; }
public void setPrice(double price) { this.price = price; }
@Override
public String toString() {
return "Product{id='" + id + "', name='" + name + "', price=" + price + '}';
}
}Opret et MongoRepository
Spring Data MongoDB gør det nemt at interagere med dine dokumenter gennem repository-interfaces. Udvid MongoRepository, og angiv din dokumenttype og dens ID-type.
Det giver dig grundlæggende CRUD-metoder med det samme!
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface ProductRepository extends MongoRepository<Product, String> {
// Spring Data automatically generates methods based on method names
Product findByName(String name);
}Grundlæggende CRUD-handlinger
Med MongoRepository kan du udføre almindelige handlinger:
- Gem:
repository.save(product)for at indsætte eller opdatere. - Find:
repository.findById(id)for at hente et dokument efter ID. - Find alle:
repository.findAll()for at hente alle dokumenter. - Slet:
repository.deleteById(id)for at fjerne et dokument.
Du kan også definere brugerdefinerede forespørgsler ved blot at erklære metodenavne!
Demonstration af MongoDB-integration
Lad os samle det hele! Denne Spring Boot-applikation gemmer et produkt, finder det og udskriver dets oplysninger. Sørg for, at MongoDB kører lokalt.
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository;
@SpringBootApplication
public class MongoDemoApplication {
public static void main(String[] args) {
SpringApplication.run(MongoDemoApplication.class, args);
}
@Bean
public CommandLineRunner demo(ProductRepository repository) {
return (args) -> {
System.out.println("--- MongoDB Demo ---");
// Clear existing data (optional)
repository.deleteAll();
// Save a new product
Product product1 = new Product("Laptop Pro", 1200.00);
repository.save(product1);
System.out.println("Saved: " + product1);
// Find by name
Product foundProduct = repository.findByName("Laptop Pro");
System.out.println("Found by name: " + foundProduct);
// Find all products
System.out.println("All products:");
repository.findAll().forEach(System.out::println);
System.out.println("--- Demo End ---");
};
}
// Nested Document class
@Document(collection = "products")
public static class Product {
@Id
private String id;
private String name;
private double price;
public Product(String name, double price) {
this.name = name;
this.price = price;
}
public String getId() { return id; }
public void setId(String id) { this.id = id; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public double getPrice() { return price; }
public void setPrice(double price) { this.price = price; }
@Override
public String toString() {
return "Product{id='" + id + "', name='" + name + "', price=" + price + '}';
}
}
// Nested Repository interface
@Repository
public interface ProductRepository extends MongoRepository<Product, String> {
Product findByName(String name);
}
}Hurtig kontrol: NoSQL-repositories
Du har set, hvordan Spring Data forenkler interaktion med NoSQL. Hvilken annotering markerer en klasse som et MongoDB-dokument i Spring Data?
Opsummering: NoSQL med Spring Data
Godt arbejde! Du har lært at integrere NoSQL-databaser ved hjælp af Spring Data. Vi gennemgik:
- formålet med NoSQL-databaser
- tilføjelse af MongoDB-startafhængigheden
- konfiguration af forbindelsesegenskaber
- oprettelse af
@Document-klasser ogMongoRepository-interfaces - udførelse af grundlæggende CRUD-handlinger
Spring Data gør NoSQL lige så nemt at bruge som traditionelle SQL-databaser!
Lær Java med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 21
- Lektioner
- 84
Ofte stillede spørgsmål
Er lektionen “Integration af NoSQL-databaser” gratis?
Ja — alle 3 lektioner i læringssporet Komplet guide til Spring Boot 4, inklusive “Integration af NoSQL-databaser”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Komplet guide til Spring Boot 4-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Integration af NoSQL-databaser”?
Lær at integrere og arbejde med NoSQL-databaser som MongoDB eller Redis ved hjælp af Spring Data. Du øver dig i Komplet guide til Spring Boot 4 med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Komplet guide til Spring Boot 4?
Der kræves ingen tidligere erfaring. Komplet guide til Spring Boot 4 på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.
Hvor lang tid tager lektionen “Integration af NoSQL-databaser”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Komplet guide til Spring Boot 4-lektion?
Ja. Alle Komplet guide til Spring Boot 4-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Brugerdefinerede Spring Data-repositories
- Integration af NoSQL-databaser
- Caching med Spring Cache
- Databasemigreringer med Flyway