SpringBoot(홍팍) - DB 테이블과 SQL

정원·2023년 3월 14일
0

SpringBoot

목록 보기
16/34

2023.03.14 DB 테이블과 SQL

H2 DB 접속 설정

application.properties

프로젝트관련 여러 설정이 들어감

# h2 DB, 웹 콘솔 접근 허용
spring.h2.console.enabled = true

Spring initializr에서 설정했던 H2 Database 설정

H2 DB 접속

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 추가 완료 ✨

롬복 플러그인 설치

최신 인텔리제이에는 롬복 플러그인이 이미 설치 되어있음 😊

DTO,Entity 리팩토링

생성자와 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 "";
      }
}

콘솔에서 확인 가능.

0개의 댓글