访问Hsql .data数据库文件

一、Hsql简介:

hsql数据库是一款纯Java编写的免费数据库,许可是BSD-style的协议。 仅一个hsqldb.jar文件就包括了数据库引擎,数据库驱动,还有其他用户界面操作等内容。下载地址:https://sourceforge.net/projects/hsqldb/files/hsqldb/。其中hsqldb-2.4.x 开头的需要jdk8及以上,低于这个版本的比如hsqldb-2.2.9 jdk7可以用。

二、Hsql文件结构:

数据库会包含如下文件:
• finedb.properties
• finedb.script
• finedb.log
• finedb.data
• finedb.backup
finedb.properties 文件包含关于数据库的一般设置。
finedb.script 文件包含表和其它数据库,插入没有缓存表的数据。
finedb.log 文件包含当前数据库的变更。
finedb.data 文件包含缓存表的数据。
finedb.backup 文件是最近持久化状态的表的数据文件的压缩备份文件
如果数据库没有缓存表,finedb.data finedb.backup文件将不会存在,数据也可能存在finedb.script文件中

三、访问过程:

1.把下载的jar包..\hsqldb-2.2.9\hsqldb\lib\hsqldb.jar放到hsql目录下

2.把jar包添加到classpath环境变量中

3.创建data目录把需要访问的文件放到此目录。也可以自己创建新的数据库文件,在命令行进入data文件夹输入命令:

D:\hsqldb\data>java org.hsqldb.Server -database finedb

4.创建system.properties文件,dbname和port是随便指定的,finedb的名字是要与需要访问的数据文件名字保持一致

5.打开命令窗口,进入当前文件夹输入服务端命令:java org.hsqldb.Server。提示成功数据库说明已经成功启动并连到.data文件了,如果提示sql有问题可以去finedb.script中修改脚本。

6.打开另外一个命令窗口,进入当前文件夹输入客户端命令:java org.hsqldb.util.DatabaseManagerSwing会弹出窗口

7.setting name随便写,URL中输入jdbc:hsqldb:hsql://localhost:8001/fineReportdb就可以成功连上db了。

四、用代码访问Hsql数据库:

     import java.sql.Connection;

     import java.sql.DriverManager;

     import java.sql.ResultSet;

     import java.sql.SQLException;

     import java.sql.Statement;

 

     public class ConnetcHsqlDb {

          public static void main(String[] args) {

               String url = "jdbc:hsqldb:hsql://localhost:8001/fineReportdb";

               String user = "SA";

               String password = "";

               try {

                    Class.forName("org.hsqldb.jdbcDriver");

                    Connection conn = DriverManager.getConnection(url, user, password);

                    Statement state = conn.createStatement();

                    ResultSet rs = state.executeQuery("SELECT FIRSTNAME,LASTNAME FROM customer");

                    while (rs.next()) {

                         System.out.print(rs.getString("FIRSTNAME") + " ");

                         System.out.print(rs.getString("LASTNAME") + " ");

                         System.out.println("");

                    }

               } catch (ClassNotFoundException e) {

                    e.printStackTrace();

               } catch (SQLException e) {

                    e.printStackTrace();

               }

          }

     }

猜你喜欢

转载自www.cnblogs.com/dongjh/p/9691566.html