엔터티 설계
엔터티는 데이터베이스 테이블을 자바 클래스로 표현하는 것입니다.
이를 통해 데이터베이스와 객체 지향 프로그래밍 간의 간극을 줄일 수 있습니다.
@Entity
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "name", nullable = false)
private String name;
@Column(name = "age")
private int age;
// 기본 생성자
public Person() {
}
// Getter와 Setter
// ...
}
DAO 설계
DAO는 데이터베이스와의 CRUD 작업을 캡슐화하는 객체입니다.
DAO를 통해 애플리케이션 코드와 데이터베이스 간의 결합도를 낮추고 유지보수를 용이하게 할 수 있습니다.
public interface PersonDAO {
void insertPerson(Person person);
Person getPerson(Long id);
List<Person> getAllPersons();
void updatePerson(Person person);
void deletePerson(Long id);
}
@Repository
public class PersonDAOImpl implements PersonDAO {
@PersistenceContext
private EntityManager entityManager;
@Override
public void insertPerson(Person person) {
entityManager.persist(person);
}
@Override
public Person getPerson(Long id) {
return entityManager.find(Person.class, id);
}
@Override
public List<Person> getAllPersons() {
TypedQuery<Person> query = entityManager.createQuery("SELECT p FROM Person p", Person.class);
return query.getResultList();
}
@Override
public void updatePerson(Person person) {
entityManager.merge(person);
}
@Override
public void deletePerson(Long id) {
Person person = getPerson(id);
if (person != null) {
entityManager.remove(person);
}
}
}
엔터티 설계: 데이터베이스의 테이블과 매핑될 자바 클래스를 정의하고, JPA 어노테이션을 사용하여 매핑 정보를 제공합니다.
DAO 설계: 데이터베이스와의 상호 작용을 추상화하고 캡슐화하여 애플리케이션의 다른 부분과 독립적으로 작동하게 합니다.
'BACKEND > SPRING' 카테고리의 다른 글
Spring Data JPA 활용 - JPQL과 쿼리 메서드 (0) | 2023.08.13 |
---|---|
데이터베이스 연동 - 레포지토리 인터페이스 설계와 DAO 연동을 위한 컨트롤러 설계 (0) | 2023.08.06 |
데이터 베이스 연동 - ORM, JPA (0) | 2023.08.06 |
05. 로깅 라이브버리 - Logback (0) | 2023.07.30 |
05. API를 작성하는 다양한 방법 - DELETE API 만들기 (0) | 2023.07.30 |