Integrasjon av NoSQL-databaser
Lær å integrere og samhandle med NoSQL-databaser som MongoDB eller Redis ved hjelp av Spring Data.
Integrasjon av NoSQL-databaser er en gratis leksjon i Komplett guide til Spring Boot 4 på CoddyKit. Dette er leksjon 2 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Komplett guide til Spring Boot 4, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Komplett guide til Spring Boot 4 inneholder totalt 4 leksjoner.
Introduksjon til NoSQL-databaser
Tradisjonelle databaser (som SQL) lagrer data i strukturerte tabeller. NoSQL-databaser tilbyr et fleksibelt alternativ som egner seg godt for store mengder ustrukturerte eller semistrukturerte data.
- Ikke-relasjonelle: Ingen fastlagt skjema.
- Skalerbare: Skaler enkelt horisontalt.
- Ulike modeller: Dokument, nøkkel-verdi, graf og kolonnefamilie.
De egner seg godt for stordata, sanntidsnettapper og mikrotjenester.
Spring Datas rolle i NoSQL
Akkurat som med JPA tilbyr Spring Data en konsekvent og velkjent programmeringsmodell for samhandling med ulike NoSQL-databaser.
Det forenkler datatilgang ved å:
- Redusere standardkode.
- Tilby repository-grensesnitt.
- Håndtere databasespesifikke operasjoner.
Du får den samme Spring-opplevelsen også med ikke-relasjonelle datalagre!
Vårt NoSQL-eksempel: MongoDB
Det finnes mange NoSQL-databaser, som Redis (nøkkel-verdi), Cassandra (kolonnefamilie) og Neo4j (graf). I denne leksjonen fokuserer vi på MongoDB, en populær dokumentorientert database.
I MongoDB lagres data i fleksible, JSON-lignende dokumenter kalt BSON, gruppert i samlinger.
Legge til MongoDB-avhengigheten
Først må vi legge til startavhengigheten for Spring Data MongoDB i prosjektet vårt. Den tar med alle nødvendige biblioteker for å koble til MongoDB.
For Maven legger du dette til i pom.xml:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>Konfigurere MongoDB-tilkoblingen
Deretter forteller du Spring Boot hvordan den skal koble til MongoDB-instansen din. Vanligvis gjør du dette i filen application.properties eller application.yml.
Her er et grunnleggende oppsett for en lokal MongoDB:
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.database=mydatabaseDefinere MongoDB-dokumentet
I MongoDB lagres data i dokumenter. I Java representerer vi disse dokumentene med enkle POJO-er (Plain Old Java Objects). Bruk Spring Data MongoDB-annotasjoner 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 + '}';
}
}Opprette et MongoRepository
Spring Data MongoDB gjør det enkelt å samhandle med dokumentene dine gjennom repository-grensesnitt. Utvid MongoRepository og angi dokumenttypen og ID-typen.
Dette gir deg grunnleggende CRUD-metoder med én gang!
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);
}Grunnleggende CRUD-operasjoner
Med MongoRepository kan du utføre vanlige operasjoner:
- Lagre:
repository.save(product)for å sette inn eller oppdatere. - Finne:
repository.findById(id)for å hente et dokument etter ID. - Finne alle:
repository.findAll()for å hente alle dokumenter. - Slette:
repository.deleteById(id)for å fjerne et dokument.
Du kan også definere egendefinerte spørringer ved ganske enkelt å deklarere metodenavn!
Demonstrasjon av MongoDB-integrasjon
La oss sette alt sammen! Denne Spring Boot-applikasjonen lagrer et produkt, finner det igjen og skriver ut detaljene. Sørg for at MongoDB kjø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);
}
}Hurtigsjekk: NoSQL-repositoryer
Du har sett hvordan Spring Data forenkler samhandling med NoSQL. Hvilken annotasjon markerer en klasse som et MongoDB-dokument i Spring Data?
Oppsummering: NoSQL med Spring Data
Godt jobbet! Du har lært hvordan du integrerer NoSQL-databaser ved hjelp av Spring Data. Vi gikk gjennom:
- Formålet med NoSQL-databaser.
- Å legge til MongoDB-startavhengigheten.
- Konfigurering av tilkoblingsegenskaper.
- Oppretting av
@Document-klasser ogMongoRepository-grensesnitt. - Utføring av grunnleggende CRUD-operasjoner.
Spring Data gjør NoSQL like enkelt å bruke som tradisjonelle SQL-databaser!
Lær deg Java med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 21
- Leksjoner
- 84
Ofte stilte spørsmål
Er leksjonen «Integrasjon av NoSQL-databaser» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Komplett guide til Spring Boot 4, inkludert «Integrasjon av NoSQL-databaser», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Komplett guide til Spring Boot 4 inneholder totalt 4 leksjoner.
Hva lærer jeg i «Integrasjon av NoSQL-databaser»?
Lær å integrere og samhandle med NoSQL-databaser som MongoDB eller Redis ved hjelp av Spring Data. Du øver på Komplett guide til Spring Boot 4 med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Komplett guide til Spring Boot 4?
Ingen tidligere erfaring er nødvendig. Komplett guide til Spring Boot 4 på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.
Hvor lang tid tar leksjonen «Integrasjon av NoSQL-databaser»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Komplett guide til Spring Boot 4-leksjonen?
Ja. Alle Komplett guide til Spring Boot 4-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Egendefinerte Spring Data-repositorier
- Integrasjon av NoSQL-databaser
- Bufring med Spring Cache
- Databasemigreringer med Flyway