web.xml
============================================
<context-param>
<param-name>hsql.dbPath</param-name>
<param-value>/apps/db/</param-value>
</context-param>
<context-param>
<param-name>hsql.dbName</param-name>
<param-value>mydb</param-value>
</context-param>
<context-param>
<param-name>hsql.port</param-name>
<param-value>9999</param-value>
</context-param>
<listener>
<listener-class>
cn.scorpionsoft.distributor.HSQLDBStartListener
</listener-class>
</listener>
============================================
HSQLDBStartListener.java
package cn.scorpionsoft.distributor;
import org.hsqldb.Server;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
/**
* 自动开启 HSQLDB 服务
*
* @author 抽支烟
*
*/
public class HSQLDBStartListener implements ServletContextListener {
/**
* 初始化
*/
public void contextInitialized(ServletContextEvent sce) {
String dbName = sce.getServletContext().getInitParameter("hsql.dbName");
String path = sce.getServletContext().getInitParameter("hsql.dbPath");
int port = -1;
try {
port = Integer.parseInt(sce.getServletContext().getInitParameter(
"hsql.port"));
} catch (Exception e) {
port = 9999;
}
if (dbName == null || dbName.equals("")) {
System.out
.println("Cant' get hsqldb.dbName from web.xml Context Param");
return;
}
File dbDir = new File(path);
if (!dbDir.exists()) {
if (!dbDir.mkdirs()) {
System.out.println("Can not create DB Dir for Hsql:" + dbDir);
return;
}
}
if (!path.endsWith("/")) {
path = path + "/";
}
File scriptFile = new File(path + dbName + ".script");
File propertiesFile = new File(path + dbName + ".properties");
if (propertiesFile.exists()) {
this.startServer(path, dbName, port);
} else {
System.out
.println("Connect failed:Connect Hsqldb error or database files not exits!");
}
}
/**
* 启动 Hsqldb 服务的方法。
*
* @param dbPath
* 数据库路径
* @param dbName
* 数据库名称
* @param port
* 端口号
*/
private void startServer(String dbPath, String dbName, int port) {
Server server = new Server();// 它可是hsqldb.jar里面的类啊。
server.setDatabaseName(0, dbName);
server.setDatabasePath(0, dbPath + dbName);
if (port != -1) {
server.setPort(port);
}
server.setSilent(true);
server.start();
System.out.println("HSQLDB started...");
}
/**
* Listener 销毁方法,在 Web 应用终止的时候执行"shutdown"命令关闭数据库.
*/
public void contextDestroyed(ServletContextEvent arg0) {
Connection conn = null;
try {
Class.forName("org.hsqldb.jdbcDriver");
conn = DriverManager.getConnection(
"jdbc:hsqldb:hsql://localhost:9999/mydb", "sa", "");
Statement stmt = conn.createStatement();
stmt.executeUpdate("SHUTDOWN;");
} catch (Exception e) {
;
}
}
}
分享到:
相关推荐
- **DatabaseManager**:HSQL提供了一个数据库管理工具,用于可视化操作数据库。启动命令: ```bash java -cp hsqldb.jar org.hsqldb.util.DatabaseManager ``` 用户需要配置适当的服务器模式、驱动、URL、...
在你的`applicationcontext.xml`配置文件中,添加如下配置来创建一个基于Apache Commons DBCP的数据源,用于连接HSQL数据库: ```xml <bean id="Hsql" class="org.apache.commons.dbcp.BasicDataSource"> ...
HSQL是一个用java语言写的微型数据库,其大小在800k左右。麻雀虽小,但五脏俱全,数据库该有的功能他都有。同样是小型数据库,它要不ACCESS好的多,因为他有JDBC包,而且JDBC包和数据库实体是同一个文件,这就是说...
2. **创建数据库文件**: 使用HSQLDB提供的命令行工具或者Java API创建一个新的数据库文件,例如`test.db`。 3. **启动数据库服务器**: 使用`hsqldb.server`脚本或Java类启动HSQLDB服务器,确保它监听适当的端口...
总的来说,HSQLDB作为一个轻量级的Java数据库,提供了高效、灵活且易于使用的解决方案,尤其适合于开发、测试和快速原型构建等场景。其小巧的体积、高性能以及与Java的紧密集成,使得HSQLDB在IT行业中得到了广泛应用...
hsql 数据库详细教程 ...* Java 编程,需要一个支持Java 的数据库引擎。 * 需要支持SQL99 和SQL2003的大部分标准的数据库引擎。 hsql 数据库是一款功能强大且体积小的数据库引擎,适合小型应用程序和Java 编程。
HSQL Database,全称为HyperSQL Database,是一款轻量级、高性能、开源的SQL关系型数据库管理系统,特别适合于Java应用程序。这款数据库系统以其简洁的API、快速的性能和全面的SQL支持,在Java开发环境中得到了广泛...
HSQLDB is a relational database engine and a set of tools written in Java. The file index.html in this directory contains the list of directories with their contents. Documentation and license ...
如何使用hsql数据库
在命令行或通过Java API,你可以启动一个HSQL数据库引擎,并定义一个数据库模式。例如,你可以创建一个名为`cc`的模式来对应我们的`cc.csv`文件。 ```sql CREATE SCHEMA CC; USE CC; ``` 接下来,我们需要创建一个...
6. Jetty:Jetty是一个开源的HTTP服务器和Servlet容器,它可以嵌入到Java应用程序中,无需单独部署服务器。这使得快速启动和停止Web应用成为可能,尤其适合于开发和测试环境。 在构建这个项目时,首先你需要在pom....
1. 配置简单:HSQLDB可以通过简单的配置文件启动,也可以作为Java应用程序的一部分直接嵌入。 2. JDBC驱动:作为Java数据库,HSQLDB提供了JDBC驱动,可以方便地与Java应用进行集成。 七、总结 HSQLDB 2.2.5以其轻...
在本篇博文中,我们将深入探讨Spring...总的来说,这篇博文可能详细介绍了Spring与HSQL数据库的整合,包括配置、操作和测试等方面,为读者提供了一个清晰的实践指南,帮助他们更好地理解和运用Spring的数据访问功能。
至于HSQL,这是一个轻量级的、纯Java的SQL数据库引擎,常用于测试和嵌入式应用。它的优点在于快速启动,内存模式下运行无需额外配置,适合单元测试和开发环境。HSQL支持多种数据库模式,包括单用户、多用户和网络...
hsql数据库,体积最小的数据库,使用最方便的数据库,不用安装,解压就能用,携带方便
HSQL数据库则是一个轻量级、高性能的开源关系型数据库,常用于测试和快速原型开发。 首先,我们需要理解Spring如何配置数据源。在Spring应用中,数据源是连接到数据库的关键组件。通常,我们可以通过XML配置或Java...
`runManagerSwing`这个名字暗示了它可能是一个基于Java Swing的管理工具,Swing是Java GUI库的一部分,用于创建桌面应用程序。 使用这个工具,用户可以更直观地进行数据库管理,而无需通过命令行或编写代码。只需...
总之,HSQLDB作为Java应用中的一个强大工具,提供了快速、轻量级的数据库解决方案,无论是开发、测试还是学习,都能发挥重要作用。通过理解并熟练掌握HSQLDB与Java的结合使用,开发者可以更高效地处理数据需求。