HSQLDB 试用

原创 2011年01月12日 23:16:00

1.先试用服务器模式。


1)下载hsqldb,解压并进入该目录,创建data目录。
2)创建数据库:java -cp ../lib/hsqldb.jar org.hsqldb.Server -database.0 file:test1 -dbname.0 testyll
上面语句创建了一个以testyll为访问名字的数据库,不过该数据库在data目录下的存储文件的名字为test1.
3)java -cp ../lib/hsqldb.jar org.hsqldb.DatabaseManager  打开 DatabaseManager。

Type :选择服务器模式( HSQL Database Engine Server

URLJDBC 连接,修改为jdbc:hsqldb:hsql://localhost/testyll

这样就进入testyll数据库。

4)在command栏里输入:

create table Person(
ID INTEGER NOT NULL PRIMARY KEY,
FIRST_NAME VARCHAR NOT NULL,
LAST_NAME VARCHAR NOT NULL,
BIRTH_DATE DATE);

创建一个表。

insert into Person values(1,'yao','lingling','1986-06-30');

插入一条记录。

UPDATE Person SET BIRTH_DATE = '1986-05-24' WHERE LastName = 'lingling' 

查看结果变化。

select * from person;


5)接下去用java程序来访问这个数据库。

先创建一个java文件,将其保存于data目录下。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import org.hsqldb.jdbcDriver;

public class HsqlDemo {

    public static void main(String[] args) {
        try {
            Class.forName("org.hsqldb.jdbcDriver");
            Connection c = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/testyll", "sa", "");

            if (c != null) {
                System.out.println("Connected db success!");
                String sql = "CREATE TABLE TBL_USERS(ID INTEGER, NAME VARCHAR, BIRTHDAY DATE);";
                Statement st = c.createStatement();
                st.execute(sql);
                sql = "INSERT INTO TBL_USERS(ID, NAME, BIRTHDAY) VALUES ('1', 'ADMIN', SYSDATE);";
                st.executeUpdate(sql);
                if (st != null) {
                    st.close();
                }
                c.close();
            }
        } catch(Exception e) {
            System.out.println("ERROR:failed to load HSQLDB JDBC driver.");
            e.printStackTrace();
            return;
        }
    }  
}


6)javac -cp ../lib/hsqldb.jar HsqlDemo.java  编译这个java文件。

7)  java -cp ../lib/hsqldb.jar;.  HsqlDemo  执行这个class文件

8)然后在HSQL database manager 中通过  view   -  refresh tree  查看这个java程序对testyll数据库的改变。

9)创建自己指定的server

首先在 data 目录下创建一个 server.properties 文件,文件内容为(注:在实际文件中,删除后面的注释内容):

server.port=9001               # 指定端口号为 9001

server.database.1=file:mydb  # 将在 data 目录下创建 mydb 数据库

server.dbname.=mydb           # 指定数据库名, jdbc 连接时就是用此名称

server.silent=true

     在data 目录下创建 runServer.bat 文件,文件内容为

@java -classpath ../lib/hsqldb.jar org.hsqldb.Server

     双击运行 runServer.bat 文件,将会在 data 目录下创建 mydb 数据库,并启动数据库。


这样做的话,就需要在java文件里: Connection c = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost:9001/mydb", "sa", "");



2 以上只是对服务器模式的试用:

下面继续对其他模式进行尝试。

hsqldb总共有三种模式:Server模式, In-Process模式, Memry-Only数据库

1)Server模式提供了最大的可访问性。应用程序(客户端)通过Hsqldb的JDBC驱动连接服务器。在服务器模式中,服务器在运行的时候可以被指定为最多10个数据库。 Server模式又分为三种: Hsqldb Server, Hsqldb Web Server, Hsqldb Servlet。

Hsqldb Server这种模式是首选的也是最快的。它采用HSQLDB专有的通信协议。 Hsqldb Web Server 这种模式只能用在通过HTTP协议访问数据库服务器主机,采用这种模式唯一的原因是客户端或服务器端的防火墙对数据库对网络连接强加了限制。 Hsqldb Servlet    这种模式和Web Server一样都采用HTTP协议,当如Tomcat或Resin等servlet引擎(或应用服务器)提供数据库的访问时,可以使用这种模式。但是Servlet模式不能脱离servlet引擎独立启动。

server模式的创建数据库连接的语句为 Connection c = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/testyll", "sa", "");

2)In-Process模式又称Standalone模式。这种模式下,数据库引擎作为应用程序的一部分在同一个JVM中运行。对于一些应用程序来说, 这种模式因为数据不用转换和通过网络的传送而使得速度更快一些。其主要的缺点就是默认的不能从应用程序外连接到数据库。

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


3)Memory-Only数据库不是持久化的而是全部在随机访问的内存中。因为没有任何信息写在磁盘 上。这种模式通过mem:协议的方式来指定:

  Connection c = DriverManager.getConnection("jdbc:hsqldb:mem:dbName", "sa", "");

也可以在server.properties中指定相同的URL来运行一个Memory-Only(仅处于内存中)服务器实例。


3.回过头来再来看看hsqldb在jpetstore里面的运用。他这个应该是创建的memory-only模式吧。

好了,我找了文档规范了,请参照如下网页:

http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/jdbc.html

其中12.8专门讲述了spring对embedded-database的支持。


参考资料:

有一篇我觉得写的很好的文章就是:

http://www.cnblogs.com/kenkofox/archive/2010/12/01/1893782.html

Spring by Example JDBC Module:http://www.springbyexample.org/examples/spring-by-example-jdbc-module.html

http://stackoverflow.com/questions/4293787/jdbc-create-table

HSQLDB

import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; import java...
  • shendeguang
  • shendeguang
  • 2013年12月11日 22:36
  • 1174

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

一、简介:hsql数据库是一款纯Java编写的免费数据库,许可是BSD-style的协议,如果你是使用Java编程的话,不凡考虑一下使用它,相对其他数据库来说,其体积小,才563kb。仅一个hsqld...
  • today1858
  • today1858
  • 2010年10月18日 20:50
  • 4283

用hsql管理工具连接liferay自带的Hsql数据库

启动hsql服务: java -cp hsqldb.jar org.hsqldb.Server -database.0 d:/data/hsql/lportal-dbname.0lportal ...
  • sunxingtao
  • sunxingtao
  • 2012年07月26日 14:41
  • 1010

HSQLDB数据库整理

一、简介 HSQLDB(HyperSQL Database)是一个轻量级的纯Java开发的开放源代码的关系型数据库,其体积小,占用空间小,使用简单,支持内存运行方式等特点。 hsqldb-2....
  • fanxiaobin577328725
  • fanxiaobin577328725
  • 2016年07月14日 21:26
  • 2481

hsqldb的安装使用

Hsqldb下载: hsqldb对应安装文件可以从https://sourceforge.net/projects/hsqldb/files/hsqldb/hsqldb_2_3/下载,本文对应的是hs...
  • menghuannvxia
  • menghuannvxia
  • 2016年10月15日 12:07
  • 766

HSQLDB安装与使用

HSQLDB安装与使用 2010-12-11 00:42 1473人阅读 评论(0) 收藏 举报 hsqldbjdbc数据库hibernatejava服务器   HSQLDB...
  • u013571243
  • u013571243
  • 2015年03月23日 22:02
  • 560

hsql使用架构包启动数据库

hypser sql
  • huang798807481
  • huang798807481
  • 2013年09月27日 18:28
  • 1147

HSQLDB常用命令

1、查询所有表 SELECT * FROM   INFORMATION_SCHEMA.TABLES 2、查询语句,带分页 SELECT [LIMIT n m] [DISTINCT]  { se...
  • menghuannvxia
  • menghuannvxia
  • 2016年07月28日 22:28
  • 1178

spring-boot集成hsqldb

spring-boot集成hsqldb 源代码
  • zhangjq520
  • zhangjq520
  • 2017年01月04日 10:29
  • 1611

HSQLDB 安装与使用

HSQLDB是一个轻量级的纯Java开发的开放源代码的关系数据库系统,其体积小,占用空间小,使用简单,支持内存运行方式等特点。可以在 http://sourceforge.net/proje...
  • luxideyao
  • luxideyao
  • 2014年02月24日 18:05
  • 24761
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HSQLDB 试用
举报原因:
原因补充:

(最多只允许输入30个字)