728x90
반응형
인메모리 데이터베이스
Application Server의 메모리를 이용하는 데이터베이스 시스템
종류
- H2
- HSQL
- Derby
특징
- Jdbc 의존성을 추가하면 자동 설정이 필요한
DataSource
,JdbcTemplate
Bean을 설정해준다. - 디스크가 아닌 메모리에 데이터가 존재해 접근이 빠르다.
- 메모리에 데이터가 존재하여 휘발성을 가진다.
H2 DB 예제
// pom.xml
// jdbc
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
// h2
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
// H2Runner.java
@Component
public class H2Runner implements ApplicationRunner {
@Autowired
DataSource dataSource;
@Autowired
JdbcTemplate jdbcTemplate;
@Override
public void run(ApplicationArguments args) throws Exception {
// try-with-resource : Java 7 이상
// try()에 선언된 객체를 코드블럭 안에서 사용하고 코드블럭을 벗어나면
// 자동으로 close()를 호출한다.
// 기존 try-cath-finally문 처럼 finally 를 사용해서 close() 할 필요가 없다.
try(Connection connection = dataSource.getConnection()) {
// 인메모리 데이터베이스 정보 확인
String url = connection.getMetaData().getURL();
String userName = connection.getMetaData().getUserName();
System.out.println("URL : " + url);
System.out.println("UserName : " + userName);
Statement statement = connection.createStatement();
String sql = "CREATE TABLE USER(ID INTEGER NOT NULL, NAME VARCHAR(255), PRIMARY KEY (ID))";
statement.executeUpdate(sql);
}
// JdbcTemplate 를 사용하면 코드를 간결하게 사용 가능하고
// resource 반납처리 기능이 구현되어 있어 안전하게 사용 가능하며
// 예외를 던질 때 에러 계층구조가 잘 되어있어 가독성이 높은 에러 메시지 확인 가능하다.
jdbcTemplate.execute("INSERT INTO USER VALUES (1, 'Jinseo')");
}
}
H2 Console 사용 방법
spring-boot-devtools
추가application.properties
에spring.h2.console.enabled=true
설정
H2 Console 이용 결과 확인
728x90
반응형
'Dev > Spring Boot' 카테고리의 다른 글
[스프링 부트 개념과 활용] 스프링 데이터 5부 (0) | 2020.08.27 |
---|---|
[스프링 부트 개념과 활용] 스프링 데이터 3, 4부 (0) | 2020.08.27 |
[스프링 부트 개념과 활용] 스프링 데이터 1부 (0) | 2020.08.26 |
[스프링 부트 개념과 활용] 스프링 웹 MVC 11부 (0) | 2020.08.26 |
[스프링 부트 개념과 활용] 스프링 웹 MVC 10부 (0) | 2020.08.26 |
댓글