백기선(인프런 강의)/스프링 부트 개념과 활용

스프링 데이터 2부: 인메모리 데이터 베이스

레알윙 2020. 7. 3. 09:02
반응형

지원하는 인-메모리 데이터 베이스

  • H2 (추천, 콘솔 때문에...)
  • HSQL
  • Derby

 

Spring-JDBC가 클래스패스에 있으면 자동 설정이 필요한 빈을 설정 해줍니다.

  • DataSource
  • JdbcTemplate

 

인-메모리 데이터베이스 기본 연결 정보 확인하는 방법

  • URL: “testdb”
  • username: “sa”
  • password: “”

 

H2 콘솔 사용하는 방법

  • spring-boot-devtools를 추가하거나...
  • application.properties에 spring.h2.console.enabled=true 만 추가.
  • /h2-console로 접속 (이 path도 바꿀 수 있음)

 

예제

프로젝트 생성

 

 

application.proeprties

spring.h2.console.enabled=true

 

 

설정 잡혔는제 확인 (부트 실행시키면 됨)

 

 

import java.sql.Connection;
import java.sql.Statement;

import javax.sql.DataSource;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;

@Component
public class H2Runner implements ApplicationRunner {
	@Autowired
	DataSource dataSource;
	
	@Autowired
	JdbcTemplate jdbcTemplate;
	
	@Override
	public void run(ApplicationArguments args) throws Exception {
		try(Connection connection = dataSource.getConnection()){
			connection.setAutoCommit(false);

			System.out.println("URL : " + connection.getMetaData().getURL());
			System.out.println("UserName : " + connection.getMetaData().getUserName());

			Statement statement = connection.createStatement();
			String sql = "CREATE TABLE USER (ID INTEGER NOT NULL, name VARCHAR(255), PRIMARY KEY (id))";
			statement.executeUpdate(sql);

			jdbcTemplate.execute("INSERT INTO USER VALUES (1, ‘JinSeok’)");
			connection.close();
		}
	}

}

 

 

 

http://localhost:8080/h2-console

 

위에 URL에 접속

 

부트를 실행하면 console로 찍힌 DB URL 입력후 연결 한다.

연결을 하면 아래와같은 화면이 나오게 되는데 내가 만든 user table 이 보인다.

반응형