본문 바로가기

Spring

OX퀴즈 프로그램 - 1(DB,Entity,Repository)

개요: Spring Boot를 이용해 DB에 저장된 T/F 문제 데이터와 클라이언트에서 입력한 답을 대조하는

웹 프로그램 작성

 

DDD(도메인 주도설계)방식에 입각한 구현순서

 

 

- DB구성

 

CREATE TABLE quiz (
    id bigint NOT NULL PRIMARY KEY AUTO_INCREMENT,
    question text NOT NULL,
    answer boolean NOT NULL,
    author varchar(20NOT NULL
)
 
cs

 

DBMS: MySQL

PK인 id는 auto_increment로 자동증가되게 설정

answer는 퀴즈의 답을 true/false로 저장하기위해 boolean으로 설정,

mysql에서는 boolean타입을 tinyint로 변환하여 true=1 false=0값을 갖는다.

 

 

- Entity(Quiz클래스) 추가

 

package com.kh.quiz.entity;
 
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
 
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Quiz {
    @Id
    private Integer id;
    private String question;
    private Boolean answer;
    private String author;
}
 
cs

 

- getter, setter는 lombok의 @Data 어노테이션으로 갈음함.

@NoArgsConstructor: 파라미터를 받지않는 생성자를 만듦

@AllArgsConstructor: 선언된 모든 변수를 파라미터로 받는 생성자를 만듦

@Id: Primary Key 선언

 

- Repository(QuizRepository 인터페이스) 추가

 

@Repository
public interface QuizRepository extends CrudRepository<Quiz, Integer> {
}
 
cs

 

CrudRepository<T, U>

T는 데이터를 받을 객체, U는 PK의 데이터타입

 

 

기본적인 쿼리문은 CrudRepository가 제공하는 메소드로 대신할수 있음.

좀더 세부적인 쿼리문을 사용하려면 QuizRepository에 선언함.