일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- VUE
- k8s
- CSS
- 프론트엔드
- 파이썬
- 자바스크립트
- 클라우드
- 이슈
- BFS
- 백엔드
- 솔리디티
- docker
- 가상화
- 타입스크립트
- 이더리움
- next.js
- HTML
- JavaScript
- 웹
- TypeScript
- 블록체인
- 리액트
- 백준
- kubernetes
- es6
- AWS
- react
- 쿠버네티스
- 컴퓨터공학
- 알고리즘
Archives
- Today
- Total
즐겁게, 코드
12월 4일 TIL : mySQL 의존성 오류, DTO, Lombok 본문
1. mysql-connector-java
스프링 어플리케이션을 MySQL과 연결하기 위해 아래처럼 pom.xml에 의존성을 작성했는데 오류를 겪었다.
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
무엇이 문제였고 하니, 대략 스프링 3부터는 mysql-connector-j
라는 의존성을 사용해줘야 함을 알 수 있었다.
2. DTO 작성하기
FE에서 타입스크립트로 객체를 구조화하는 것처럼 스프링에서도 DTO를 작성해 사용한다.
package com.example.dto;
public class TodoDTO {
private Long id;
private String title;
private String description;
private boolean completed;
// 생성자
public TodoDTO() {
}
// 인자를 받을 수 있는 생성자
public TodoDTO(Long id, String title, String description, boolean completed) {
this.id = id;
this.title = title;
this.description = description;
this.completed = completed;
}
public Long getId() {
return this.id;
}
public void setId(Long id) {
this.id = id;
}
public String getTitle() {
return this.title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDscription() {
return this.description;
}
public void setDescription(String description) {
this.description = description;
}
public boolean isCompleted() {
return completed;
}
public void setCompleted(boolean completed) {
this.completed = completed;
}
// toString method
@Override
public String toString() {
return "TodoDTO{" +
"id=" + id +
", title='" + title + '\'' +
", description='" + description + '\'' +
", completed=" + completed +
'}';
}
}
getter와 setter를 일일히 작성하는 것은 비효율적이라 생각했는데, Lombok 이라는 녀석이 도움이 될 것 같다.
3. Lombok
Lombok을 사용하니 코드를 획기적으로 줄일 수 있었다.
// pom.xml
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
package com.example.dto;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@ToString
@NoArgsConstructor
public class EnhancedTodoDTO {
private Long id;
private String title;
private String description;
private boolean completed;
}
여기서 더 줄일 수도 있다.
package com.example.dto;
import lombok.Data;
@Data
@NoArgsConstructor
public class EnhancedTodoDTO {
private Long id;
private String title;
private String description;
private boolean completed;
}
반응형
'🧺 일상다반사 > TIL' 카테고리의 다른 글
JPA 이슈 디버깅 기록, JpaRepository는 무엇인가 (0) | 2023.12.10 |
---|---|
12월 9일 : MySQL 접속 오류, DTO와 엔티티, 자바의 List 인터페이스 (3) | 2023.12.09 |
12월 3일 TIL : 스프링 기초, 라우트, Automatic Batching (2) | 2023.12.03 |
Comments
소소한 팁 : 광고를 눌러주시면, 제가 뮤지컬을 마음껏 보러다닐 수 있어요!
와!! 바로 눌러야겠네요! 😆