转载:
http://www.josdoc.com/html/shujuku/HSQLDB/rumenjiaocheng/200904/19-52.html
在学习 项目资产, 流程引擎的时候,配套的数据库使用的 HSQLDB
针对的学习了 下面的一些关于 HSQL的知识
轻量级的纯Java开发的开放源代码的关系数据库系统,使用简单、支持内存运行方式等,广泛应用于开发环境和中小应用。
四种运行模式:
内存模式、进程模式、服务器模式、Web服务器模式
服务的安装,下载解压即安装
HSQLDB服务器模式的启动方法
In-Process、Memory-Only模式无需另外启动HSQLDB
服务器模式的处理流程(创建和启动mydb数据库):
1. 数据库安装文件跟目录,创建mydb文件夹
2. 创建runMydb.bat
java -cp ..\lib\hsqldb.jar org.hsqldb.Server -database mydb
或
java -cp ../lib/hsqldb.jar org.hsqldb.Server -database.0 mydb -dbname.0 mydb
3. 创建manageMydb.bat
java -cp ..\lib\hsqldb.jar org.hsqldb.Server -database mydb
或
java -cp ../lib/hsqldb.jar org.hsqldb.Server -database.0 mydb -dbname.0 mydb
4. 主要的工具类
org.hsqldb.util.DatabaseManager
org.hsqldb.util.DatabaseManagerSwing
org.hsqldb.util.Transfer
org.hsqldb.util.QueryTool
org.hsqldb.util.SqlTool
5. 使用JDBC连接HSQLDB数据库
try {
Class.forName("org.hsqldb.jdbcDriver" );
} catch (Exception e) {
System.out.println("ERROR: failed to load HSQLDB JDBC driver.");
e.printStackTrace();
return;
}
Connection c = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/mydb", "sa", "");
6. Hibernate中使用HSQLDB hibernate.cfg.xml
7. <hibernate-configuration>
<session-factory>
...
<property name="connection.driver_class">org.hsqldb.jdbcDriver</property>
<property name="connection.url">jdbc:hsqldb:hsql://localhost/mydb</property>
<property name="connection.username">sa</property>
<property name="connection.password"></property>
<property name="dialect">org.hibernate.dialect.HSQLDialect</property>
...
</session-factory>
</hibernate-configuration>
8. 数据库具体表、数据的创建应该可以在 manage客户端进行(一般都是applet或者web页面)
本地联系 mytest数据库,通过 管理客户端进行数据库的设计
问题: HSQL的SQL语句的规则
通过link(http://zeroliu.blogdriver.com/zeroliu/1242671.html)的学习了解到 HSQL号称内存数据,在内存模式下所有数据不会保持;单机、服务器等模式下 所有的数据库操作会保存到一个 database.script 中,再次启动HSQLDB的时候 会快速的运行这个脚本回复数据库
1.内存驻留模式中只允许有一个数据库连接,所以在进行处理的时候要注意数据库连接的释放
Connection c = DriverManager.getConnection("jdbc:hsqldb:mem:aname", "sa", "");
2.单机模式,应用程序使用JDBC创建数据库连接,并且hsqldb引擎作为应用程序的一部分运行在同一个jvm之下。此时数据库只允许一个应用去访问,也就是应用程序无法和数据库管理同时进行,适合部署模式
jdbc:hsqldb:zzq
或者 jdbc:hsqldb:c:\db\zzq
3.服务器模式,允许使用TCP套接字的并发链接
java -cp ../lib/hsqldb.jar org.hsqldb.Server ?database zzq
4.web服务器模式,db以web服务器的形式启动,允许jdbc驱动通过http执行sql;也可以以标准的servlet运行,运用于需要穿透防火墙的情况
Java org.hsqldb.WebServer ?database zzq
回到上面的问题,hsql的脚步可以在 database.script 里面阅读
CREATE MEMORY TABLE CUSTOMER(ID INTEGER NOT NULL PRIMARY KEY,FIRSTNAME VARCHAR,LASTNAME VARCHAR,STREET VARCHAR,CITY VARCHAR)
CREATE SEQUENCE S_PROCESS_UNIFY_SENDER AS INTEGER START WITH 0
CREATE SCHEMA PUBLIC AUTHORIZATION DBA
CREATE INDEX INDEX_PROCESS_PI ON PROCESS_INSTANCE(TEMPLATENAME,DRAFTERNAME,STATUS)
GRANT DBA TO SA
INSERT INTO PROCESS_TEMPLATE VALUES('ContractSupport',''.....)