To-Do-List API Server : Create Model & Repository
저번 포스팅에서 to-do-list 서버의 프로젝트 생성과 gradle 설정까지 해보았습니다.
이번 포스팅에서는 모델과 레퍼지토리를 만들어보겠습니다.
Model
일단 필요한 모델들 TodoModel, TodoRequset, TodoResponse 객체를 만든다.
TodoModel
package org.example.model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
@Data
@Entity
@NoArgsConstructor
@AllArgsConstructor
public class TodoModel {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false)
private String title;
@Column(name = "todoOrder", nullable = false)
private Long order;
@Column(nullable = false)
private Boolean completed;
}
TodoModel은 Entity객체로 DB Table의 컬럼들을 명시한다.
TodoRequest
package org.example.model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class TodoRequest {
private String title;
private Long order;
private Boolean completed;
}
클라이언트 요청으로 부터 받을 데이터를 명시한다.
TodoResponse
package org.example.model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class TodoResponse {
private Long id;
private String title;
private Long order;
private Boolean completed;
private String url;
public TodoResponse(TodoModel todoModel){
this.id = todoModel.getId();
this.title = todoModel.getTitle();
this.order = todoModel.getOrder();
this.completed = todoModel.getCompleted();
this.url = "http://localhost:8080/" + this.id;
}
}
클라이언트에게 응답할때 넘겨줄 응답 데이터를 명시한다.
Repository
디비에 쿼리를 날릴 수 있게 JpaRepository를 상속하고 있는 객체 TodoRepository를 만든다.
TodoRepository
package org.example.repository;
import org.example.model.TodoModel;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface TodoRepository extends JpaRepository<TodoModel, Long> {
}
H2 Database Setting
H2 데이터베이스를 사용하기 위해 몇가지 설정이 더 필요하다.
현재 gradle dependencies에 h2가 정의되어있지 않다면 추가해준다.
dependencies {
...
runtimeOnly 'com.h2database:h2' // h2 의존성 추가
}
그리고 src/main/resources/
경로에 application.yml
파일을 생성해준다.
생성한 application.yml
파일에 데이터베이스 설정을 해준다.
# Database Settings
spring:
datasource:
url: jdbc:h2:mem:testdb;MODE=mysql;
platform: h2
username: sa
password:
driverClassName: org.h2.Driver
## H2 Settings
h2:
console:
enabled: true
path: /h2-console
데이터베이스 url은 jdbc:h2:mem:testdb
로 임메모리 관계형 데이터베이스를 추가한다.
MODE=mysql
구문은 다른 여러 DB처럼 동작 가능하도록 호환모드를 지원받기 위해서 쓴다.
MODE=
는 완벽하게 모든 기능을 지원하지는 않는다.
해당 데이터베이스 설정 구문들은 실제 디비를 설치해서 구동하는 것이 아니기 때문에
디비를 웹콘솔로 접근 할 수 있도록 H2 설정에 웹콘솔 구문도 추가해준다.
이렇게 하면 간단한 모델과 레퍼지토리 그리고 데이터베이스 설정까지 끝난다.
다음은 Service와 Controller를 구현해서 실제로 API 통신이 되는지 확인해보자!
Author And Source
이 문제에 관하여(To-Do-List API Server : Create Model & Repository), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dlalstj0213/02.-Create-Model-Repository저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)