hsql数据库使用详解(入门)及快速使用

 

 

 

一、简介:

hsql数据库是一款纯Java编写的免费数据库,许可是BSD-style的协议,如果你是使用Java编程的话,不凡考虑一下使用它,相对其

 

他数据库来说,其体积小,才563kb。仅一个hsqldb.jar文件就包括了数据库引擎,数据库驱动, 还有其他用户界面操作等内容。在

 

Java开源世界里,hsql是极为受欢迎的(就Java本身来说),JBoss应用程序服务器默认也提供了这个数据库引 擎。由于其体积小的

 

原因,又是纯Java设计,又支持SQL99,SQL2003大部分的标准,所以也是作为商业应用程序展示的一种选择。请到以下地址下载hsql

 

: http://prdownloads.sourceforge.net/hsqldb/hsqldb_1_7_3_3.zip?download

 

二、使用hsql数据库:

1、hsql数据库引擎有几种服务器模式:常用的Server模式、WebServer模式、Servlet模式、Standlone模式、Memory-Only数据库。

2、最为常用的Server模式:

1)首先却换到lib文件夹下,运行java -cp hsqldb.jar org.hsqldb.Server -database.0 db/mydb -dbname.0 xdbxdb相当于数据库别名,执行命令后后会在lib目录下生成一个db文件夹,将会在db文件夹下创建一个数据库mydb,别名(用于访问数据库)是xdb,如果存在mydb数据库,将会打开它。

2)lib文件夹目录下运行数据库界面操作工具:java -cp hsqldb.jar org.hsqldb.util.DatabaseManager

在Type 选项里选上相应的服务器模式,这里选择HSQL Database Engine Server模式;Driver不用修改;URL修改为jdbc:hsqldb:hsql://localhost/xdb (主要这里xdb就是上面我们设置的别名);user里设置用户名,第一次登录时,设置的是管理员的用户名,password设置密码。然后点击Ok。

3)第一次运行数据库引擎,创建数据库完毕。好了,你可以打开db文件夹,会发现里面多了几个文件。

mydb.properties文件:是关于数据库的属性文件。

mydb.script:hsql主要保存的表(这里按hsql的说法是Memory表,就是最为常用的),里面的格式都是文本格式,可以用文本查看,里面的语句都是sql语句,熟悉sql语句的话,你也可以手动修改它。每次运行数据库引擎的话都是从这里加载进内存的。

mydb.lck表示数据库处于打开状态。

其他的请参看hsqldb包里的手册。

 

3、WebServer模式和Server运行模式基本一样,只是支持了Http等协议,主要用于防火墙,默认端口是9001。启动Server,java -cp hsqldb.jar org.hsqldb.WebServer ...剩余的和上面的一致。

 

4、Servlet模式可以允许你通过Servlet容器来访问数据库,请查看hsqlServlet.java的源代码,和WebServer类似。

 

5、另一个值得思考的模式是Standalone模式:不能通过网络来访问数据库,主要是在一个JVM中使用,那样的话,访问的速度会更加快。虽然文档里面提到主要是用于开发时使用,但是我们可以假设一下,该方法不需要一个引擎类的东西,而类似于打开文件的方式,返回一个Connection对象:

Connection c = DriverManager.getConnection("jdbc:hsqldb:file:mydb", "sa", "");

将 会在当前目录找到mydb数据库相关文件,打开并返回一个Connection对象。该方式有点好处就是可以不使用引擎,在需要的时候操作数据。所以那些 对数据库不是特别有要求的,但又需要一个操作数据库的方式的话,可以使用这种方法。对于那些不想额外在数据库引擎花费金钱的话,可以使用这种方法。但是不 推荐使用该方法。记得Hibernate里SessionFactory可以使用openSession(Connecttion c)来获得一个Session对象的,因此,在测试或者实际应用的话都可以这样使用。

 

6、Memory-Only 数据库:顾名思义,主要是内存中使用,不用于保存数据。可以用于在内存中交换数据。

 

三、具体的链接与操作的话,和一般的JDBC操作一样。而相应的Server模式的话,连接地址主要你运行数据库界面操作工具时,在URL一栏时默认已经设好了。

---------------------------------------------------------------------------------------------

1.hsqldb.jar拷贝到工程WEB-INF/lib

2.开启两个命令行窗口,进入工程 WEB-INF/lib目录

cd C:/eclipseworkspace/TestFrame/WebContent/WEB-INF/lib(假设工程目录为此)

3.分别在命令行中输入命令,启动数据库服务器和客户端:

服务器:java -classpath hsqldb.jar org.hsqldb.Server

// 客户端:java -classpath hsqldb.jar org.hsqldb.util.DatabaseManagerSwing

4,设定连接数据库的相关参数

driverClassName=org.hsqldb.jdbcDriver

url=jdbc:hsqldb:hsql://localhost

如果使用hibernate,需要注意下面的参数:

hibernate.dialect=org.hibernate.dialect.HSQLDialect

5.测试jdbc连接hsqldb.jar数据库程序:

package com.util;

import java.sql.*;

public class DBWork {
public static void main(String args[]){
  
   try{
    Class.forName("org.hsqldb.jdbcDriver");
    Connection conn = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost", "sa", "");
    System.out.println("conn = " + conn);
   
   } catch(Exception e){
    e.printStackTrace();
   }
  
}
}

6.spring+hibernate,applicationContext.xml中配置:

<bean
class="org.springframework.jdbc.datasource.DriverManagerDataSource" id="dataSource">
<property name="driverClassName">
   <value>org.hsqldb.jdbcDriver</value>
</property>
<property name="url">
   <value>jdbc:hsqldb:hsql://localhost</value>
</property>
<property name="username">
   <value>sa</value>
</property>
<property name="password">
   <value/>
</property>
</bean>
<bean
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" id="sessionFactory">
<property name="dataSource">
   <ref local="dataSource"/>
</property>
<property name="mappingResources">
   <list>
    <value>com/hibernate/UserInfo.hbm.xml</value>
   </list>
</property>
<property name="hibernateProperties">
   <props>
    <prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop>
    <prop key="hibernate.show_sql">true</prop>
   </props>
</property>
</bean>

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值