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 |
댓글