hsqldb관련
- C:\Java\hsqldb_1_8_0_9\db\member\member.script 라는 파일과 위치를 시킨다.
* 이 위치는 hsqldb의 위치와는 상관없다.
- member.script의 sample
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문을 이용하여 보다 강력한 기능을 쉽게 구현할 수 있고,
다양한 환경에 쉽게 포팅될 수 있다고 봅니다.
=====================