Back-end/Spring Boot

[Spring DB] DB 관련 어노테이션, 데이터 모델링 클래스

Bay Im 2024. 4. 6. 13:01
  • DB 관련 어노테이션
    • @Entity
      • DB 테이블과 1:1로 매칭되는 JPA 클래스
    • @Table
      • 클래스 이름이 테이블 이름으로 자동으로 설정되는데, 이럴때 테이블명 직접 지정할 때 사용
    • @Id
      • 기본키 id 열로 사용
    • @GeneratedValue(strategy = GenerationType.IDENTITY)
      • GenerationType 종류
        • IDENTITY
          • MySQL, MariaDB, PostreSQL, H2DB
        • SEQUENCE
          • Oracle, PostreSQL
        • AUTO
          • 자동 선택
    • @Column(name=”컬럼명”)
      • 해당 멤버 변수의 컬럼명 지정
    • @DateTimeFormat(pattern = “yyyy-mm-dd”)
      • Date 데이터를 가져올 때 날짜 형식 사용자 지정 가능
      • @RequestParam @ModelAttribute 매핑
    • @JsonFormat
      • @RequestBody @ResposeBody 매핑
  • 데이터 모델링 클래스 종류
    • Entity 클래스
      • DB 테이블과 Entity 클래스는 1:1 매칭(연결)
      • 로직 코드를 작성하면 안된다.
      • JPA에서 사용한다.
    • DTO 클래스 (Data Transfer Object)
      • 다른 계층 간에 데이터 교환을 위해 데이터를 변형하여 사용하는 객체
      • 로직 코드를 가지고 있지 않고, 순수하게 getter/setter로 이루어져 있다.
      • 엔티티 클래스에 있는 모든 멤버변수(컬럼)을 사용할 필요없이 원하는 컬럼만 담는 DTO를 만들어 사용할 수 있다.
    • VO 클래스 (Value Object)
      • DTO 클래스와 동일한 개념이지만 Getter만 가지는 Read Only의 속성을 갖고있다.
    • DAO 클래스 (Data Access Object)
      • DB에 실제 접근하여 CRUD 하는 객체를 말한다.
      • JPA의 Repository를 사용하는 경우를 말한다.
728x90

'Back-end > Spring Boot' 카테고리의 다른 글

[Spring Boot] MyBatis  (0) 2024.04.13
[Spring Boot] URI 어노테이션  (0) 2024.04.06
[Spring Boot] Model에서 Rest API로 변환  (0) 2024.04.06
[Spring Boot] Test  (0) 2024.04.06
[Spring DB] Repository (JPA, JPQL, Native SQL)  (0) 2024.04.06