====== H2======
===== 개요 =====
H2는 자바 기반의 DB 엔진으로서 스프링프레임워크 3 부터는 H2, HSQL 등의 내장 데이터베이스의 사용을 지원하고 있다.
해당 데이터베이스들은 오라클 같은 비교적 무거운 데이터베이스에 비해 상대적으로 가벼우며,
내장으로 사용 할 경우 개발자가 로컬에서 자체적으로 돌릴 수도 있다
===== 설명 =====
==== 설정 ====
스프링프레임워크3에서는 spring-jdbc 네임 스페이스에서 제공하는 jdbc:embedded-database를 이용하여 간단한 설정을 지원한다.
스프링 컨테이너는 javax.sql.DataSource 타입의 빈으로 내장 데이터베이스의 인스턴스를 생성하여 인젝션 시킬 수 있도록 지원한다.
스프링에서는 HSQL, H2 및 Derby를 지원하며 타입을 명시적으로 지정하지 않는 경우 기본값은 HSQL 이다.
추가로 jdbc:embedded-database 태그를 사용하면 빈 데이터베이스만을 생성하는 것이 아니라 스키마를 만들고 여기에 데이터까지 넣어줄 수 있다.
위와같이 설정 된 H2 데이터베이스의 데이터 소스는 dataSource 라는 id를 가진 빈으로 등록되며,
해당 빈은 DI를 통하여 또 다른 설정파일 또는 컨트롤러 등에서 사용할 수 있다
==== 프로그래밍 방식을 통한 인스턴스 생성 ====
스프링 에서는 xml 설정 뿐만이 아니라 EmbeddedDatabaseBuilder API에서 제공하는 함수를 사용하여 H2의 인스턴스를 생성 시킬 수 있다.
database = new EmbeddedDatabaseBuilder().addDefaultScripts().build();
===== 참고자료 =====
* [[http://www.h2database.com |h2 database 홈페이지]]