Spring boot JPA + SQLite 세팅
오늘은 Spring boot 와 SQLite 연동을 해보도록 하겠습니다. 😁😁
SQLite란?
소형 관계형 데이터베이스 관리 시스템(RDBMS)입니다. 고성능, 경량 및 서버리스 데이터베이스 관리 시스템으로서, C 라이브러리로 구현되어 있으며, 파일 기반 데이터베이스로 사용할 수 있습니다.
SQLite는 대부분 운영 체제에서 작동하며, 일반적으로 모바일 기기, 웹 브라우저, 임베디드 시스템 및 응용 프로그램과 같은 경량 응용 프로그램에 적합합니다.
장점
SQLite의 장점은 작은 크기와 이식성, 빠른 응답 시간 및 간편한 설정과 관리 등이 있습니다. SQLite는 다른 RDBMS에 비해 제한된 기능을 제공하지만 대부분의 상용 시나리오에는 충분한 기능을 제공합니다.
SQLite는 SQL(Structured Query Language)을 사용하여 데이터를 저장, 검색 및 관리하며, ACID(원자성, 일관성, 고립성, 지속성) 트랜잭션을 지원합니다.
다른 RDBMS에 비해 가볍기 때문에 이번에는 sqlite를 사용해보도록 하겠습니다.
먼저 build.gradle에 dependency를 추가해 줍니다.
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa' // jpa
implementation 'org.xerial:sqlite-jdbc:3.41.2.1' // sqlite jdbc
implementation 'org.hibernate.orm:hibernate-community-dialects' // diarect
}
hibernate 6 이전에는 SQLite 방언이 지원되지 않았습니다. 그래서 방언을 직접 설정해야 했지만 hibernate 6 부터는 SQLite 방언을 지원하기 떄문에 디펜던시만 추가해주시면 됩니다.
yml 파일 설정
spring:
jpa:
database-platform: org.hibernate.community.dialect.SQLiteDialect
hibernate:
ddl-auto: create # update
datasource:
url: jdbc:sqlite:mydb.db
driver-class-name: org.sqlite.JDBC
username: admin
password: admin
설정을 마쳤으니 프로젝트를 실행해주도록 합니다. 실행을 시키게 되면 mydb.db가 생성이 됩니다.
생성이 되었지만 접속이 되는지 heidiSQL 툴을 사용하여 접속해 보도록 하겠습니다.
데이터베이스 파일명에는 절대경로를 적어주시면 되겠습니다. 이제 접속테스트도 완료했으니
JPA를 사용해서 엔티티를 하나 만들어보도록 하겠습니다.
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
@Entity
public class CmdInfo {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String cmd;
private String cmdVersion;
private String msg;
}
이제 프로젝트를 다시 실행시키고 DB를 확인해보도록 하겠습니다.
잘 생성된 것을 확인할 수 있습니다.
감사합니다. 😉
참고링크
https://www.baeldung.com/spring-boot-sqlite