티스토리 뷰
1. 종속성
1.1 gradle 종속성
runtimeOnly 'com.h2database:h2'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
1.2 Maven 종속성
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
2. 데이터베이스 구성
SpringBoot에서 DB를 연결하기 위해서는 Application.yml 또는 application.properties에 속성을 추가 해야 합니다.
spring:
datasource:
url: jdbc:h2:file:./data/demodb # 파일 저장소
username: sa
password: hhs1234
driverClassName: org.h2.Driver
hikari: # DB Connection Pool
auto-commit: true # 자동커밋 여부. (default: true)
connection-test-query: SELECT 1 # connection 유효성 검사 쿼리
minimum-idle: 10 # pool에 유지할 유휴 connection 최소 개수
maximum-pool-size: 50 # pool에 유지시킬 수 있는 최대 connection 수
pool-name: pool-hyomee # connection pool 이름
max-lifetime: 600000
leak-detection-threshold: 300000t
"jdbc:h2:mem:mydb" 속성 설정은 메모리 내 DB를 사용하므로 프로그램을 다시 시작하면 사라지므로 파일 기반을 하여 변경을 하면 프로그램을 다시 시작 하여도 남아 있게 됩니다.
1. 디렉토리 [드라이브] : url: jdbc:h2:file:c:/data/demodb::
- 생성 위치 : c 드라이브의 data 디렉토리
2. 현재 사용자 디렉토리 [물결]: url: jdbc:h2:file:~/data/demodb
- 생성 위치 : windows 사용자 디렉토리 C:/Users/<current user>
3. 현재 작업 디렉토리 [점] : url: jdbc:h2:file:./data/demodb.
- 생성 위치 : 프로그램이 시작되는 디렉토리
2-1. hikari 속성 : brettwooldridge/HikariCP: 光 HikariCP・드디어 견고한 고성능 JDBC 커넥션 풀. (github.com)
GitHub - brettwooldridge/HikariCP: 光 HikariCP・A solid, high-performance, JDBC connection pool at last.
光 HikariCP・A solid, high-performance, JDBC connection pool at last. - GitHub - brettwooldridge/HikariCP: 光 HikariCP・A solid, high-performance, JDBC connection pool at last.
github.com
3. H2 Console 설정
Web 화면을 통해서 H2 DB 접근을 도와주는 기능으로 속성은 다음과 같습니다.
spring:
h2:
console:
enabled: true # 콘솔 사용
path: /h2-console # 콘솔 접근 uri
settings.trace: false # 추적 활성화
settings.web-allow-others: false # CORS로 다른 사용자 접근 허용 여부
4. JPA 설정
JPA 란 자바에서 객체와 DB를 연결해주는 기술을 구현하기 위해 필요한 부품을 모아놓은 표준 명세로 하이버네이트는 JPA의 명세로 ORM 기술을 구현한 프레임워크 중 하나입니다. Spring Data JPA는 Spring에서 제공하는 모듈 중 하나로, Repository라는 인터페이스를 제공해서 개발자가 JPA를 더 쉽게 사용할 수 있도록 해주는 것 입니다.
jpa:
database-platform: org.hibernate.dialect.H2Dialect # 접속할 database의 SQL Dialect 설정, JPA를 활용하여 동적 쿼리 생성시, database에 맞는 방언 sql을 생성
properties:
hibernate:
show-sql: true # 모든 SQL문을 콘솔로 출력
format_sql: true # 모든 SQL문을 콘솔로 출력해 준다.
hbm2ddl.auto: update # 앱 시작시 @Entity로 정의한 테이블의 create 문 실행
use_sql_comments: true # 디버깅이 용이하도록 SQL문 이외에 추가적인 정보를 출력
open-in-view: false
5. 전체 application.yml
spring:
application:
name: hyomee
h2:
console:
enabled: true # 콘솔 사용
path: /h2-console # 콘솔 접근 uri
settings.trace: false # 추적 활성화
settings.web-allow-others: false # CORS로 다른 사용자 접근 허용 여부
datasource:
url: jdbc:h2:file:./data/demodb # 파일 저장소
username: sa
password: hhs1234
driverClassName: org.h2.Driver
hikari: # DB Connection Pool
auto-commit: true # 자동커밋 여부. (default: true)
connection-test-query: SELECT 1 # connection 유효성 검사 쿼리
minimum-idle: 10 # pool에 유지할 유휴 connection 최소 개수
maximum-pool-size: 50 # pool에 유지시킬 수 있는 최대 connection 수
pool-name: pool-hyomee # connection pool 이름
max-lifetime: 600000
leak-detection-threshold: 300000
jpa:
database-platform: org.hibernate.dialect.H2Dialect # 접속할 database의 SQL Dialect 설정, JPA를 활용하여 동적 쿼리 생성시, database에 맞는 방언 sql을 생성
properties:
hibernate:
show-sql: true # 모든 SQL문을 콘솔로 출력
format_sql: true # 모든 SQL문을 콘솔로 출력해 준다.
hbm2ddl.auto: update # 앱 시작시 @Entity로 정의한 테이블의 create 문 실행
use_sql_comments: true # 디버깅이 용이하도록 SQL문 이외에 추가적인 정보를 출력
# implicit_naming_strategy: org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
# physical_naming_strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy
open-in-view: false
logging:
level:
org:
hibernate:
SQL: DEBUG
type:
descriptor:
sql:
BasicBinder=TRACE:
'Spring' 카테고리의 다른 글
Springboot - JPA 이름 규칙 (0) | 2023.08.24 |
---|---|
Springboot JPA Pagination (0) | 2023.08.23 |
SpringBoot 로그 출력 (0) | 2023.08.15 |
SpringBoot - ES 개발 (0) | 2023.08.15 |
SpringBoot Mybatis 구성 (0) | 2023.08.13 |