关闭

HSQLDB 试用

1059人阅读 评论(0) 收藏 举报

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

0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:69216次
    • 积分:795
    • 等级:
    • 排名:千里之外
    • 原创:18篇
    • 转载:15篇
    • 译文:0篇
    • 评论:20条
    文章分类
    最新评论