카테고리 없음

hsqldb관련

매직 2008. 4. 20. 09:21
[ ] HSQLDB standalone 모드
- C:\Java\hsqldb_1_8_0_9\db\member\member.script 라는 파일과 위치를 시킨다.
  * 이 위치는 hsqldb의 위치와는 상관없다.
- member.script의 sample
CREATE SCHEMA PUBLIC AUTHORIZATION DBA
CREATE MEMORY TABLE MEMBER(ID VARCHAR(10) NOT NULL PRIMARY KEY,PASSWORD VARCHAR(10),NAME VARCHAR(10),AGE INTEGER,SEX VARCHAR(2),TEL VARCHAR(12))
CREATE USER SA PASSWORD ""
GRANT DBA TO SA
SET WRITE_DELAY 1
SET SCHEMA PUBLIC
INSERT INTO MEMBER VALUES('boazzang','boalove','\ubcf4\uc544\uc9f1',30,'\uc5ec','0100000000')
INSERT INTO MEMBER VALUES('child','ggoma','\uaf2c\ub9c8',15,'\uc5ec','01000000000')

- java에서 접근할때
  * Class.forName("org.hsqldb.jdbcDriver"); 
  * String url = "jdbc:hsqldb:file:C:/Java/hsqldb_1_8_0_9/db/member/member";

[ ] HSQLDB Server모드
- java -cp ..\lib\hsqldb.jar org.hsqldb.Server -database member
  * member 라는 데이터 베이스를 기동시킨다.
- java -cp ..\lib\hsqldb.jar org.hsqldb.util.DatabaseManager
  * 메니져를 띄우고 서버 > jdbc:hsqldb:hsql://localhost/ 를 선택한다.
- 필요한 sql을 불러와서 실행시킨다.

[ ] 필요한 sql sample

DROP TABLE IF EXISTS MEMBER;

CREATE TABLE MEMBER(
ID VARCHAR(10) PRIMARY KEY,
PASSWORD VARCHAR(10),
NAME VARCHAR(10),
AGE INTEGER,
SEX VARCHAR(2),
TEL VARCHAR(12));

INSERT INTO MEMBER VALUES('boazzang','boalove','qq',30,'남','0100000000')
INSERT INTO MEMBER VALUES('child','ggoma','ww',15,'남','01000000000')


참고 Url : -----------------------------------
hsqldb 사용하기 : http://blog.naver.com/vanillaices/80006914101
hsqldb에서 사용하는 쿼리 셈플 : http://www.cafesoft.com/products/cams/ps/docs21/admin/SampleUserDatabase.html
hsqldb sql syntax : http://hsqldb.org/doc/guide/ch09.html

hsqldb jdbc 연결 셈플 :http://blog.naver.com/niiyama/90019997147
hsqldb 시작하기 : http://javaworld.co.kr/10
hsqldb 번역 : http://scblood.egloos.com/3009829

참고 정보 : ----------------------------------

hsqldb 패키지 구하는 장소는 sourceforge.net에 있습니다.
hsqldb는 기존의 HypersonicSQL 서버의 뒤를 이어 개발을 진행하는 db입니다.
HypersonicSQL (default port:1476)은 버젼업이 중단된 상태입니다.
hsqldb는 default port 9001 로 접속되고요, jboss3.2에서는 1701 포트로 접속 가능합니다.
1) hsqldb 접속 : hsqldb 접속클라이언트 실행 배치파일(runManager.bat)을 작성하여 hsqldb.jar 패키지와 같은 폴더에 놓고 실행시킨 다음,
applet 창 메뉴: file/connect... 창에서 Type: HSQL Database Engine Server 를 선택하고,
URL : jdbc:hsqldb:hsql://localhost:1701 로 포트를 설정(default:9001) 하고 Ok 클릭
---------- runManager.bat -----------------
 javaw -classpath %CLASSPATH%;hsqldb.jar org.hsqldb.util.DatabaseManager %1 %2 %3 %4 %5 %6 %7 %8 %9
 ----------------------------------------------
 만약, hsqldb.jar 파일이 다른 위치에 있다면 해당경로를 classpath에 설정하면 됩니다.
 다른 db에 접속하고 싶다면 해당 db driver 를 classpath에 설정하고 Applet창에서 Type과 URL을 해당 DB로 선택하면 됩니다.
 예) -classpsth %CLASSPATH%;hsqldb.jar;postgresql.jar;%J2EE_HOME%\lib\cloudscape\RmiJdbc.jar;%J2EE_HOME%\lib\cloudscape\cloudclient.jar
 예처럼, 다양한 db에 접속할 수 있습니다.
 2) hsqldb를 network접속을 지원하는 독립서버(HSQL Database Engine Server)로 실행방법:
 runServer.bat 배치파일을 작성하여 hsqldb.jar와 같은 폴더에 놓는다.
 그리고 배치파일을 실행하면 3개의 파일이 자동으로 생성되면서 배치파일에서 설정한 db 가 만들어진다.
 hsqldb는 오직 한개의 db만을 사용하도록 구현되었다.
따라서, 여러 db를 사용하고 싶다면 port를 달리하여 여러개를 실행하는 방법이 있다.
--------- runServer.bat ---------------
java -classpath %CLASSPATH%;hsqldb.jar org.hsqldb.Server -port 1476 -database xpetstoredb
------------------------------------------
만약, hsqldb.jar 파일이 다른 위치에 있다면,
classpath에 해당 경로를 설정하면 되고 서버가 실행될 때 생성된 3개의 파일은 runServet.bat 이 위치한 폴더에 위치하고 서버에 저장된 데이터는 이들 3개의 파일에 의해 관리된다.
위 배치파일은 xpetstoredb 데이터베이스를 생성하고 접속포트는 1476으로 설정된 상태다.
접속방법: Type: HSQL Database Engine Server 를 선택하고, URL : jdbc:hsqldb:hsql://localhost:1476 Ok 클릭.
끝으로, 서버실행시 -port 와 -database 가 설정되지 않으면, 기본값으로 -port= 9001 , -database=default 로 설정되고 이경우,
접속할때는 -port를 생략할 수 있다. Type: HSQL Database Engine Server 를 선택하고,
URL : jdbc:hsqldb:hsql://localhost Ok 클릭.
p.s: hsqldb는 서버(Database Engine Server )로 실행될 때 database가 결정되고 고정되기 때문에 클라이언트에서 접속할 때 database를 지정하지 않고, 단지 port만을 지정할 수 있다.
Standalone 방식은 database를 지정하지만,
이는 network접속을 지원하지 않고 Application에 embeded 형식으로 포함되어 이를 포함한 application에 의해 구동되고 이 application만이 접근할 수 있습니다.
이 기능의 장점은 일반 어플리케이션이 SQL Query문을 이용하여 보다 강력한 기능을 쉽게 구현할 수 있고,
다양한 환경에 쉽게 포팅될 수 있다고 봅니다.

=====================