NoSQL Veri Tabanlarını Entegre Etme
Spring Data kullanarak MongoDB veya Redis gibi NoSQL veri tabanlarını entegre etmeyi ve bunlarla etkileşim kurmayı öğrenin.
NoSQL Veri Tabanlarını Entegre Etme, CoddyKit'te ücretsiz bir Spring Boot 4 Complete Guide dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Spring Boot 4 Complete Guide öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Spring Boot 4 Complete Guide kursu toplamda 4 dersten oluşur.
Bu dersin bazı bölümleri henüz çevrilmemiş olup İngilizce olarak gösterilmektedir.
Intro to NoSQL Databases
Traditional databases (like SQL) store data in structured tables. NoSQL databases offer a flexible alternative, ideal for handling large volumes of unstructured or semi-structured data.
- Non-relational: No fixed schema.
- Scalable: Easily scale horizontally.
- Diverse Models: Document, Key-Value, Graph, Column-Family.
They are great for big data, real-time web apps, and microservices.
Spring Data's Role in NoSQL
Just like with JPA, Spring Data provides a consistent, familiar programming model for interacting with various NoSQL databases.
It simplifies data access by:
- Reducing boilerplate code.
- Offering repository interfaces.
- Handling database-specific operations.
You get the Spring experience even with non-relational stores!
Our NoSQL Example: MongoDB
There are many NoSQL databases, like Redis (key-value), Cassandra (column-family), and Neo4j (graph). For this lesson, we'll focus on MongoDB, a popular document-oriented database.
In MongoDB, data is stored in flexible, JSON-like documents called BSON, grouped into collections.
Add MongoDB Dependency
First, we need to add the Spring Data MongoDB starter dependency to our project. This pulls in all necessary libraries to connect to MongoDB.
For Maven, add this to your pom.xml:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>Configure MongoDB Connection
Next, tell Spring Boot how to connect to your MongoDB instance. You'll typically do this in your application.properties or application.yml file.
Here's a basic setup for a local MongoDB:
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.database=mydatabaseDefine Your MongoDB Document
In MongoDB, data is stored in documents. We represent these documents in Java using simple POJOs (Plain Old Java Objects). Use Spring Data MongoDB annotations like @Document and @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 + '}';
}
}Create a MongoRepository
Spring Data MongoDB makes interacting with your documents easy through repository interfaces. Extend MongoRepository, specifying your document type and its ID type.
This gives you basic CRUD methods out-of-the-box!
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);
}Basic CRUD Operations
With MongoRepository, you can perform common operations:
- Save:
repository.save(product)to insert or update. - Find:
repository.findById(id)to get a document by ID. - Find All:
repository.findAll()to retrieve all documents. - Delete:
repository.deleteById(id)to remove a document.
You can also define custom queries by simply declaring method names!
MongoDB Integration Demo
Let's put it all together! This Spring Boot application saves a product, finds it, and prints its details. Make sure MongoDB is running locally.
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);
}
}Quick Check: NoSQL Repositories
You've seen how Spring Data simplifies NoSQL interactions. Which annotation marks a class as a MongoDB document in Spring Data?
Recap: NoSQL with Spring Data
Great job! You've learned how to integrate NoSQL databases using Spring Data. We covered:
- The purpose of NoSQL databases.
- Adding the MongoDB starter dependency.
- Configuring connection properties.
- Creating
@Documentclasses andMongoRepositoryinterfaces. - Performing basic CRUD operations.
Spring Data makes NoSQL as easy to use as traditional SQL databases!
Sıkça Sorulan Sorular
“NoSQL Veri Tabanlarını Entegre Etme” dersi ücretsiz mi?
Evet — “NoSQL Veri Tabanlarını Entegre Etme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Spring Boot 4 Complete Guide kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Spring Boot 4 Complete Guide kursu toplamda 4 dersten oluşur.
“NoSQL Veri Tabanlarını Entegre Etme” dersinde ne öğreneceğim?
Spring Data kullanarak MongoDB veya Redis gibi NoSQL veri tabanlarını entegre etmeyi ve bunlarla etkileşim kurmayı öğrenin. Spring Boot 4 Complete Guide ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Spring Boot 4 Complete Guide öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Spring Boot 4 Complete Guide, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“NoSQL Veri Tabanlarını Entegre Etme” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Spring Boot 4 Complete Guide dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Spring Boot 4 Complete Guide dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Özel Spring Data Veri Depoları
- NoSQL Veri Tabanlarını Entegre Etme
- Spring Cache ile Önbelleğe Alma
- Flyway ile Veritabanı Geçişleri