HSQLDB

오픈소스 비즈니스 컨설팅 사이트는 모든 사람이 동참하는 개방된 사이트 입니다.
오픈 소스와 오픈 API와 관계된 사항은 자유로이 추가, 수정 하셔도 됩니다. 모두의 동참을 바랍니다.
오픈소스 비즈니스 컨설팅에 대한 문의는 으로 메일 주세요.

오픈소스 비즈니스 컨설팅

Java 기반의 DB인 HSQLDB를 정리 한다.


목차

[편집] HSQLDB 환경 설정

Jetty에서 Java 기반의RDBMS인 HSQLDB를 사용하여 RDBMS 개발 환경을 구성해 보자.

  • 환경 변수 정의
  • $JETTY_HOME : Jetty가 설치된 폴더
  • $JETTY_WEB_ROOT : Web Application 배포된 Root 폴더, $JETTY_HOME/webapps/test/
  • http://localhost:8080/ : $JETTY_WEB_ROOT 에 브라우저로 접속하는 URL


  • "Download Now!" 버튼을 클릭하여 hsqldb-2.0.0-rc9.zip 파일을 다운로드 한다.
  • 압축을 풀어 hsqldb.jar를 $JETTY_WEB_ROOT/WEB-INF/lib/ 폴더에 복사 한다.
  • HSQLDB 관리를 위해 $JETTY_HOME/startHsqldbManager.cmd 파일을 다음과 같이 생성 한다.
  • startHsqldbManager.cmd 를 실행하면 관리자용 GUI가 실행된다.
@echo off
set JAVA_HOME=../java
set PATH=../java/bin;%PATH%

java -classpath webapps/test/WEB-INF/lib/hsqldb.jar org.hsqldb.util.DatabaseManager
rem pause


  • $WebContent/WEB-INF/web.xml

<resource-ref>

   <description>DB Connection</description>
   <res-ref-name>jdbc/mysql</res-ref-name>
   <res-type>javax.sql.DataSource</res-type>
   <res-auth>Container</res-auth>

</resource-ref>

  • $WebContent/WEB-INF/context.xml에서 php.ini 파일 등을 지정 한다.

<Context>

   <Resource driverClassName="com.mysql.jdbc.Driver" 
       maxActive="4" maxIdle="2" maxWait="5000" auth="Container" 
       name="jdbc/mysql" password="" type="javax.sql.DataSource" 
       url="jdbc:mysql://localhost:3306/customer" username="root"/>

</Context>

[편집] 사용자 가이드

[편집] Server 모드 설정

Server 모드는 독립된 서버 프로세스로 실행하는 것으로 로컬 또는 원격지에서 HSQLDB에 접근할 수 있다.

  • HSQLDB 관리를 위한 GUI 도구
java -classpath hsqldb.jar org.hsqldb.util.DatabaseManager
  • HSQLDB 실행
java -classpath hsqldb.jar org.hsqldb.Server
  • HSQLDB 종료
  • DataManager에서 "shutdown" query를 실행
  • HSQLDB 설정 파일
  • server.properties
  • HSQLDB에서 Database 생성
java -classpath hsqldb.jar org.hsqldb.Server -database.0 file:data/test -dbname.0 testUrl
  • -database.0 file:data/test : 데이터베이스가 사용할 경로와 파일명 형식(test.*)을 명시
  • data라는 폴더에 test.* 파일이 생성됨
  • -dbname.0 testUrl : 데이터베이스의 alias를 지정. alias는 애플리케이션에서 jdbc를 통해 hsqldb에 접근할 때 사용
  • url로 "jdbc:hsqldb:hsql://localhost/testUrl" 를 사용함
  • 인덱스는 0에서 9까지 사용 가능 (예, -database.3)
  • HSQLDB 접속
Class.forName("org.hsqldb.jdbc.JDBCDriver");

Connection c = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/testUrl", "SA", "");

[편집] In-process 모드 설정

In-process 모드는 HSQLDB를 애플리케이션과 동일한 프로세스에서 HSQLDB를 실행하는 모드로 자체 DB를 필요로 하는 어플리케이션이나 캐시와 같은 임시 데이터를 처리하는 데 이용 한다.
In-process 모드는 메모리에 DB를 저장할 수 있고 또는 File 형태로 DB를 저장할 수 있다.

  • HSQLDB 관리를 위한 GUI 도구
java -classpath hsqldb.jar org.hsqldb.util.DatabaseManager
  • HSQLDB 설정 파일
  • server.properties
  • HSQLDB 접속
Class.forName("org.hsqldb.jdbc.JDBCDriver");

Connection c = DriverManager.getConnection("jdbc:hsqldb:file:/opt/db/testdb", "SA", "");
Connection c = DriverManager.getConnection("jdbc:hsqldb:mem:mymemdb", "SA", "");

[편집] 관리자 가이드

[편집] 참고 문헌