0. DAO
DAO는 Data Access Object라는 뜻으로, DB와 데이터를 연결하기 위한 클래스이다. Service에서 비즈니스 로직을 처리한 후 DAO에서 데이터를 받아 Repository를 통해 DB에 작업을 수행한다.
1. ProductDAO
package com.web.springtest00.data.dao;
import com.web.springtest03.data.entity.Product;
public interface ProductDAO {
Product insertProduct(Product prodcut);
Product selectProduct(Long number);
Product updateProductName(Long number, String name) throws Exception;
void deleteProduct(Long number) throws Exception;
}
2. ProductDAOImpl
package com.web.springtest00.data.dao.impl;
import java.time.LocalDateTime;
import java.util.Optional;
import org.springframework.stereotype.Component;
import com.web.springtest00.data.dao.ProductDAO;
import com.web.springtest00.data.entity.Product;
import com.web.springtest00.data.repository.ProductRepository;
@Component
public class ProductDAOImpl implements ProductDAO {
private final ProductRepository productRepository;
public ProductDAOImpl (ProductRepository productRepository){
this.productRepository = productRepository;
}
@Override
public Product insertProduct(Product prodcut) {
return productRepository.save(prodcut);
}
@Override
public Product selectProduct(Long number) {
return productRepository.findById(number).orElse(null);
}
@Override
public Product updateProductName(Long number, String name) throws Exception {
Optional<Product> selectedProduct = productRepository.findById(number);
Product updatedProduct;
if(selectedProduct.isPresent()){
Product product = selectedProduct.get();
product.setName(name);
product.setUpdatedAt(LocalDateTime.now());
updatedProduct = productRepository.save(product);
} else {
throw new Exception();
}
return updatedProduct;
}
@Override
public void deleteProduct(Long number) throws Exception {
Optional<Product> selectedProduct = productRepository.findById(number);
if(selectedProduct.isPresent()){
Product product = selectedProduct.get();
productRepository.delete(product);
} else {
throw new Exception();
}
}
}
'Java > Spring Boot' 카테고리의 다른 글
[Spring Boot] Controller 생성 (0) | 2023.03.28 |
---|---|
[Spring Boot] Service 생성 (0) | 2023.03.28 |
[Spring Boot] DTO 생성 (0) | 2023.03.28 |
[Spring Boot] Repository 생성 (0) | 2023.03.28 |
[Spring Boot] Entity 생성 (0) | 2023.03.28 |