MongoDB
2023. 12. 28. 19:49ㆍSpring Boot
Spring boot에서 DB를 이용할 때
만들어야 하는 요소는 3가지이다
우선 사용할 Entity 의 양식을 정하는 class
import org.bson.types.ObjectId;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Document(collection = "test")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class test_db {
@Id
private ObjectId id;
private String title;
private String data;
public test_db(String title, String data) {
this.title = title;
this.data = data;
}
}
이때 사용할 MongoDB Collection의 이름을 넣어준다
또한 ObjectID 객체로 id를 선언한다
데이터베이스와 서비스를 연결하는 Repository
import org.bson.types.ObjectId;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface db_repository extends MongoRepository<test_db, ObjectId> {
}
MongoRepository를 상속받아 만들기 때문에
기본적인 검색 수정 생성의 Method는 존재해 따로 만들지는 않는다
다만 필요에 따라 새로 만들 수도 있다.
Controller에게 정해진 method로 필요한 데이터를 넘겨주는 Service
import java.util.List;
import java.util.Optional;
import org.bson.types.ObjectId;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class db_service {
@Autowired
private db_repository repository;
public List<test_db> all_data() {
return repository.findAll();
}
public Optional<test_db> get_data(ObjectId id) {
return repository.findById(id);
}
public test_db create_data(String title, String data) {
test_db test = repository.insert(new test_db(title, data));
return test;
}
public test_db create_data2(String title, String data) {
test_db test = new test_db(title, data);
repository.save(test);
return test;
}
public test_db update_data(ObjectId id, String title, String data) {
Optional<test_db> tmp = repository.findById(id);
if(tmp != null) {
test_db test = tmp.get();
if(title != null) {
test.setTitle(title);
}
if(data != null)
test.setData(data);
repository.save(test);
return test;
}
return null;
}
public void delete_data(ObjectId id) {
repository.deleteById(id);
}
}
appljcation.properties에

기본적으로는 uri와 database의 이름만 정의해주면 된다
build.gradle에는

spring-boot-starter-data-mongodb를 추가해준다
'Spring Boot' 카테고리의 다른 글
| Json Web Token (2) | 2024.01.02 |
|---|---|
| CustomFilter (0) | 2024.01.02 |
| SecurityFilterChain (0) | 2024.01.02 |
| CSRF Token (0) | 2023.12.28 |
| Form Post (0) | 2023.12.12 |