[spring boot 개발] 테이블 생성

이경민·2022년 8월 5일
0

spring

목록 보기
7/20

Spring Boot를 사용해 mysql 쿼리문 생성

자바 코드

// Entity 어노테이션은 자동으로 mysql에 테이블 생성
@Entity
public class User {
    @Id                // primary key라는 것을 알려주는 annotation
    @GeneratedValue(strategy= GenerationType.IDENTITY)    // 프로젝트에 연결된 DB의 numbering 전략을 따른다.
    private int id;    // 시퀀스, auto_increment

    @Column(nullable=false, length=30)
    private String username;

    @Column(nullable=false, length=100)
    private String password;

    @Column(nullable=false, length=50)
    private String email;

    @ColumnDefault("user")
    private String role;    // enum을 쓰는게 좋다. (admin, user, manager 중 1택)

    @CreationTimestamp    // 시간이 자동 입력
    private Timestamp createDate;

}
  • @Entity: 자동으로 mysql에 테이블을 생성한다
  • @Id: primary key라는 것을 알려준다
  • @GeneratedValue: 프로젝트에 연결된 DB의 numbering 전략에 따른다

  • @Column(nullable=false, length=30): null이 불가능하고 최대 길이가 30인 column 생성
  • @ColumnDefault("user"): column의 기본값을 user로 지정
  • @CreationTimestamp: 시간 자동 입력

enum 사용하기

요일이나 계절처럼 한정된 개수의 값들을 1개로 묶어서 사용할 때 열거 타입을 사용한다.
허용 가능한 값들 제한이 가능하며 자동완성, 오타검증, 텍스트 리팩토리 기능을 제공한다.

위의 예시의 경우 admin, user, manager 사용자 중 1개를 사용하는 enum 타입을 만드는 것이 좋다. 위의 3개의 경우 중에서만 사용하므로 오타가 나는 것 방지가 가능하다.


application 코드

user-new-id-generator-mapping: false

Jpa에 사용하는 기본 전략을 따라가지 않는다

ddl-auto: create

프로젝트를 실행할 때마다 테이블 알아서 생성

0개의 댓글