2023.03.14 DB 테이블과 SQL
프로젝트관련 여러 설정이 들어감
# h2 DB, 웹 콘솔 접근 허용
spring.h2.console.enabled = true
Spring initializr에서 설정했던 H2 Database 설정
application.properties에 H2 DB 설정후 브라우저에 url 입력
http://localhost:8080/h2-console
JDBC URL이 매번 달라지기 때문에 찾아서 변경해주어야한다.
나중에는 자동으로 변경되게 할것이다.
인텔리제이 콘솔에서 ctrl+F - JDBC 찾기 - 주소 복사 후 붙여넣기
Connect 누르면 연결된다.
build.gradle안에 dependencies안에 롬복 추가
dependencies {
// 롬복 추가
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
...
}
dependencies추가 후 코끼리 모양 눌러서 빌드하기!
lombok 추가 완료 ✨
최신 인텔리제이에는 롬복 플러그인이 이미 설치 되어있음 😊
생성자와 toString()를 lobom 어노테이션으로 대체 👍
@AllArgsConstructor
@ToString
@AllArgsConstructor
@ToString
public class ArticleForm {
private String title;
private String content;
public Article toEntity() {
return new Article(null, title, content);
}
}
@AllArgsConstructor
@ToString
@Entity
public class Article {
@Id
@GeneratedValue
private Long id;
@Column
private String title;
@Column
private String content;
}
현재는 컨트롤러에서 sysout으로 확인하고 있는데
실제 서버에서는 sysout으로 사용하면 안된다. 😱
컨트롤러에 @Slf4j 어노테이션 붙이고
sysout -> log.info()로 변환한다.
@Controller
@Slf4j // 로깅을 위한 어노테이션
public class ArticleController {
...
@PostMapping("/articles/create")
public String createArticle(ArticleForm form) {
log.info(form.toString());
// System.out.println(form.toString()); -> 로깅기능으로 대체!!
// 1. DTO -> Entity 변환
Article article = form.toEntity();
log.info(article.toString());
// System.out.println(article);
// 2. Repository 에게 Entity를 DB안에 저장하게 함
Article saved = articleRepository.save(article);
log.info(saved.toString());
// System.out.println(saved.toString());
return "";
}
}
콘솔에서 확인 가능.