Database & ORM/JPA 프로젝트

1. 프로젝트 생성 및 기본 환경 설정

MJ.Lee 2022. 3. 9. 20:50

프로젝트 환경

  • 뷰: Mustache
  • 웹 계층: Spring MVC
  • 데이터 저장 계층: JPA, 하이버네이트, H2, MySQL
  • 기반 프레임워크: Spring Framework
  • 빌드: Gradle

Gradle 프로젝트 생성

https://start.spring.io/ 에서 사진과 같이 Dependency를 추가해서 프로젝트를 생성한다.

Dependency 목록

  • Lombok: Getter, Setter, 생성자, Builder 등을 어노테이션으로 편리하게 만들어줌
  • Spring Boot DevTools: Hot Deploy 등 개발의 편리성을 위해 사용
  • Spring Web: Spring Web 프로젝트
  • Mustache: 가장 심플한 화면 템플릿 엔진
  • Spring Data JPA: 스프링에서 JPA를 사용하기 위한 라이브러리
  • H2 Database
    • 인메모리 관계형 데이터 베이스인 H2 Database 사용
    • 메모리에서 실행되기 때문에 애플리케이션을 재시작할 때마다 초기화됨

다운받은 zip파일을 압축 해제하고, IntelliJ에 Proejct로 Import 한다.

Gradle이 필요한 라이브러리들을 다운로드하고 build한다.

Main에서 Spring을 실행하면, localhost:8080/ 에서 기본 페이지에서 프로젝트가 잘 동작함을 확인할 수 있다.

Mustache 플러그인 설치

Settings에 들어가서 Mustache 플러그인 설치

H2 DB 연결 설정

application.properties에 아래와 같이 설정해준다.

DB마다 다른 명령어들이 있기 때문에 이를 Dialect라 한다.
Hibernate 구현체에서 사용할 DB를 Diablect에 설정해준다.
여기선 H2 Database에 SQL Mode는 MySQL로 정했다. hibernate의 Dialect는 MySQL로 설정했다.

#h2 hibernate Dialet 설정
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect
spring.jpa.properties.hibernate.dialect.storage_engine=innodb
spring.datasource.hikari.jdbc-url=jdbc:h2:mem:testdb;MODE=MYSQL
spring.datasource.hikari.username=sa

spring.jpa.show_sql=true
spring.h2.console.enabled=true

http://localhost:8080/h2-console/ 에 접속해서 JDBC URL을 아래와 같이 바꿔준 후 Connect한다.

schema-h2.sql, data-h2.sql

schema-h2.sql와 data-h2.sql를 resources에 넣어놓으면, 서버를 부팅할 때마다 자동으로 실행되어 테이블을 만들고 Data를 넣어준다. schema-h2는 테이블 생성 data-h2.txt는 데이터 입력 관련된 것이다.

application.properties에 spring.jpa.hibernate.ddl-auto가 create나 create-drop일 때 작동한다. 참고

Github에 Upload

Ctrl + Shift + A를 눌러서 Action을 열고, Share Proejct..를 치면 Share Project On Github이 나온다.

Share 버튼을 클릭 한 후, Commit하면 됩니다.

Github에 Commit 된 것을 확인할 수 있습니다.