zoukankan      html  css  js  c++  java
  • 访问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.9hsqldblibhsqldb.jar放到hsql目录下

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

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

    D:hsqldbdata>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();
    
                   }
    
              }
    
         }
  • 相关阅读:
    高性能网站优化——兼容
    高性能网站优化——开发
    leetcode刷题日记: 19.删除链表的倒数第k个节点
    大数据处理技术学习
    <java复习>返回可变对象引用的get方法要点
    <C++网络编程随笔>常用Socket函数总结
    <leetcode每日一题>数组中的第K个最大元素
    <leetcode每日一题>二叉树的LCA查找
    codeforce round615 div3 B
    暑假作业竟然如此芳香(hdu4145枚举+贪心)
  • 原文地址:https://www.cnblogs.com/dongjh/p/9691566.html
Copyright © 2011-2022 走看看