访问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(); } } }