根据HSQLDB文档可能从Java代码启动数据库:
因此,当Web应用程序启动时,您可以使用servlet加载数据库.步骤如下:
>创建一个Servlet“InitDatabase”并将代码用于启动数据库的方法init()
@Override
public void init() throws ServletException {
super.init();
try {
System.out.println("Starting Database");
HsqlProperties p = new HsqlProperties();
p.setProperty("server.database.0", "file:/opt/db/crm");
p.setProperty("server.dbname.0", "mydb");
p.setProperty("server.port", "9001");
Server server = new Server();
server.setProperties(p);
server.setLogWriter(null); // can use custom writer
server.setErrWriter(null); // can use custom writer
server.start();
} catch (AclFormatException afex) {
throw new ServletException(afex);
} catch (IOException ioex) {
throw new ServletException(ioex);
}
}
>在您的web.xml中,在启动时添加属性加载并将其设置为1.这是为了在Web应用程序启动时调用方法init().
InitDatabase
bo.hsqltest.InitDatabase
1
这样做后,Web应用程序将在新的线程中启动HSQLDB.为了关闭数据库,当应用程序停止时,您可以覆盖InitServlet的destroy()方法.在方法destroy中,您必须执行命令“SHUTDOWN”作为正常的sql查询(通过JDBC).