2017年清科排行榜:HSQLDB使用总结
使用批处理文件启动和管理hsqldb
文件结构如下
--start.bat
--manager.bat
--mydb.properties 这个文件里配置数据库的属性,一般不需要修改。
--mydb.script 这个文件保存数据库执行的sql脚本,用来每次启动数据库时恢复数据到内存中
--lib 用来存放jar文件
+ --hsqldb.jar 数据必须的jar包
1.双击start.bat 启动数据库服务器并加载数据库mydb,将它的别名设置为mydb。
bat文件代码如下:
java -cp ./lib/hsqldb.jar org.hsqldb.Server -database.0 mydb -dbname.0 mydb
-cp 类路径在这里是hsqldb.jar包相对于当前文件的位置
-database 数据库的id和id对应的数据库文件,这里也是相对路径,很明显mydb.properties和mydb.script在当前路径下,简略写为mydb,也可以写为 ./mydb 。
-dbname 数据库id对应的别名,这个别名可以随意起,在连接数据库的时候要用到。
2.双击manager.bat启动数据库管理器
bat文件内容如下:
java -cp lib/hsqldb.jar org.hsqldb.util.DatabaseManager
这时会弹出数据库连接信息对话框:
setting name: 随便叫个名字
type: 选择服务器模式
driver:org.hsqldb.jdbcDriver
url:jdbc:hsqldb:hsql://localhost/mydb (这里的mydb就是数据库的别名)
user:root
password:root (用户名和密码定义在mydb.script文件中)
3.文件源码:
mydb.properties:
- #HSQL Database Engine 1.8.0.10
- #Mon Oct 06 23:00:59 CST 2008
- hsqldb.script_format=0
- runtime.gc_interval=0
- sql.enforce_strict_size=false
- hsqldb.cache_size_scale=8
- readonly=false
- hsqldb.nio_data_file=true
- hsqldb.cache_scale=14
- version=1.8.0
- #创建的table默认类型是在内存中,数据库的所有信息以sql脚本的形式存在.script文件中,启动时全部加载到内存中。
- hsqldb.default_table_type=memory
- hsqldb.cache_file_scale=1
- hsqldb.log_size=200
- modified=yes
- hsqldb.cache_version=1.7.0
- hsqldb.original_version=1.8.0
- hsqldb.compatible_version=1.8.0
mydb.script:
- CREATE SCHEMA PUBLIC AUTHORIZATION DBA
- CREATE USER ROOT PASSWORD "ROOT"
- GRANT DBA TO ROOT
- SET WRITE_DELAY 10
- SET SCHEMA PUBLIC
在java中启动和关闭服务器:
- package com.hsqldb;
- import org.hsqldb.Server;
- public class HsqlServerStart {
- /**
- * @param args
- */
- public static void main(String[] args) {
- String dbName="mydb";
- String dbPath="I:/mydb/";
- int port=6952;
- Server server = new Server();// 它可是hsqldb.jar里面的类啊。
- server.setDatabaseName(0, dbName);
- server.setDatabasePath(0, dbPath + dbName);
- server.setPort(port);
- server.setSilent(true);
- server.start();
- System.out.println("服务器已经启动,您的数据库名:"+dbName);
- System.out.println("服务器已经启动,您的数据库路径:"+dbPath);
- System.out.println("服务器已经启动,您的数据库服务端口:"+port);
- System.out.println("--------------");
- }
- }
- package com.hsqldb;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.Statement;
- public class HsqlServerStop {
- /**
- * @param args
- */
- public static void main(String[] args) {
- try {
- Connection conn = null;
- Class.forName("org.hsqldb.jdbcDriver");
- conn = DriverManager.getConnection(
- "jdbc:hsqldb:hsql://localhost:6952/mydb", "root", "588629");
- Statement stmt = conn.createStatement();
- stmt.executeUpdate("SHUTDOWN;");
- System.out.println("正在关闭数据库...");
- } catch (Exception e) {
- System.out.println("发生异常:");
- e.printStackTrace();
- }
- }
- }