| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
- arraylist
- Integer.MAX_VALUE
- 인터페이스
- scanner
- super()
- jsp
- 삼항 연산
- 문자열
- 삼항 연산식
- rs.next()
- 다형성
- 상속
- 이클립스
- 배열
- 중첩for문
- javascript
- 2차원 배열
- interface
- 이중 배열
- 상수
- 오버로딩
- 자바
- docker
- extends
- Integer.MIN_VALUE
- 메소드
- Break
- Else If
- If
- for문
- Today
- Total
개발로드
★KDT 2024-04-29☆프로젝트(2)-BackEnd-SpringBoot-gradle 본문
Todo entity 생성
package com.shopapi.domain;
import jakarta.persistence.*;
import lombok.*;
import java.time.LocalDate;
@ToString
@Builder
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name="tbl_todo")
public class Todo {
@Id //pk
@GeneratedValue(strategy = GenerationType.IDENTITY ) //auto_increment, 데이터베이스가 알아서 처리, 자동으로 생성
private Long tno;
// @Column(name="content", length = 20)
private String title;
// @Column(nullable = false)
private String writer;
private boolean complete;
private LocalDate dueDate;
}
어노테이션
@ToString: 이 어노테이션은 toString() 메서드를 자동으로 생성하여 객체의 문자열 표현을 반환합니다.
@Builder: 이 어노테이션은 빌더 패턴을 사용하여 Todo 객체를 생성할 수 있도록 해줍니다.
@Getter 및 @Setter: 이 어노테이션들은 각 필드에 대한 getter와 setter 메서드를 자동으로 생성합니다.
@AllArgsConstructor: 이 어노테이션은 모든 필드를 포함하는 생성자를 자동으로 생성합니다.
@NoArgsConstructor: 이 어노테이션은 인자가 없는 기본 생성자를 자동으로 생성합니다.
엔티티 및 테이블 매핑
@Entity: 이 클래스는 JPA 엔티티임을 나타내며, 데이터베이스 테이블과 매핑됩니다.
@Table(name="tbl_todo"): 이 어노테이션은 이 엔티티가 매핑되는 데이터베이스 테이블의 이름을 지정합니다.
필드 및 어노테이션
@Id: tno 필드는 기본 키(PK)를 나타냅니다.
@GeneratedValue(strategy = GenerationType.IDENTITY): tno 필드의 값은 데이터베이스에서 자동으로 생성되며, IDENTITY 전략을 사용합니다.
나머지 필드들은 title, writer, complete, dueDate이며, 각각 Todo 엔티티의 속성을 나타냅니다. complete은 boolean 타입으로, 할 일의 완료 상태를 나타냅니다.
dueDate는 LocalDate 타입으로, 할 일의 기한 날짜를 나타냅니다.
TodoDTO 생성
package com.shopapi.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.*;
import java.time.LocalDate;
@Data
//@Getter
//@Setter
//@ToString
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class TodoDTO {
private Long tno;
private String title;
private String writer;
private boolean complete;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDate dueDate;
}//end of class
Lombok 어노테이션
@Data: 이 어노테이션은 @Getter, @Setter, @ToString, @EqualsAndHashCode, @RequiredArgsConstructor를 포함하는 Lombok의 통합 어노테이션입니다. 클래스에 필요한 모든 표준 메서드와 기능을 자동으로 생성합니다.
@Builder: 이 어노테이션은 빌더 패턴을 사용하여 TodoDTO 객체를 생성할 수 있도록 해줍니다.
@AllArgsConstructor: 모든 필드를 포함하는 생성자를 자동으로 생성합니다.
@NoArgsConstructor: 인자가 없는 기본 생성자를 자동으로 생성합니다.
필드
tno: 할 일(Todo) 객체의 고유 식별자(ID)를 나타냅니다.
title: 할 일의 제목을 나타냅니다.
writer: 할 일을 작성한 작성자를 나타냅니다.
complete: 할 일의 완료 상태를 나타내는 불리언 필드입니다.
dueDate: 할 일의 기한을 나타내는 LocalDate 타입의 필드입니다.
@JsonFormat 어노테이션
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss"): 이 어노테이션은 dueDate 필드에 적용되어 있습니다. 이 어노테이션은 이 필드를 JSON 형식으로 직렬화하거나 역직렬화할 때 날짜와 시간을 지정된 형식(yyyy-MM-dd HH:mm:ss)으로 포맷팅합니다.
TodoService 생성
package com.shopapi.service;
import com.shopapi.domain.Todo;
import com.shopapi.dto.TodoDTO;
public interface TodoService {
//#1. 등록 기능
Long register(TodoDTO todoDTO);
}//end of interface
이 인터페이스는 구현 클래스를 통해 실제 비즈니스 로직을 수행합니다. 예를 들어, TodoService를 구현한 클래스에서 register 메서드를 구현하여 TodoDTO 데이터를 데이터베이스에 저장하고, 등록된 할 일의 식별자를 반환할 수 있습니다.
이 인터페이스는 Spring 프레임워크에서 의존성 주입 및 테스트 가능성을 향상시키는 데 사용됩니다. 인터페이스를 사용하여 비즈니스 로직을 추상화함으로써 구현 클래스의 교체가 쉽고 코드의 유지 보수가 용이해집니다.
TodoServiceImpl 생성
'JAVA' 카테고리의 다른 글
| ☆KDT 2024-05-10★axios (0) | 2024.05.10 |
|---|---|
| ☆KDT 2024-04-29프로젝트★(3)-BackEnd-SpringBoot-gradle (0) | 2024.04.30 |
| ☆KDT 2024-04-24★프로젝트(1)-FrontEnd-React (0) | 2024.04.24 |
| ☆KDT 2024-04-19★Linux Server-설치 및 명령어 (0) | 2024.04.19 |
| ★KDT 2024-04-18☆React (1) | 2024.04.18 |