我下载了一个hsqldb.jar并设置为项目buildpath,然后我编写了程序
Class.forName("org.hsqldb.jdbc.JDBCDriver");
Connection conn = DriverManager.getConnection(
"jdbc:hsqldb:mem:mydb", "SA", "");
String bookTableSQL = "create table MY_TABLE ("+
" TITLE varchar(256) not null primary key,"+
" AUTHOR varchar(256) not null"+
");";
Statement st = conn.createStatement();
st.execute(bookTableSQL);
System.out.println(st);
String sql = "INSERT INTO MY_TABLE " +
"VALUES ('Mahnaz', 'Fatma')";
st.executeUpdate(sql);
Run Code Online (Sandbox Code Playgroud)
数据库和表创建成功。在下一步中,我插入了一个示例数据并获得了正在显示的数据
String sqlsel = "SELECT TITLE,AUTHOR FROM MY_TABLE";
ResultSet rs = st.executeQuery(sqlsel);
//STEP 5: Extract data from result set
while(rs.next()){
//Retrieve by column name
String id = rs.getString("TITLE");
String age = rs.getString("AUTHOR");
//Display values
System.out.print("ID: " + id);
System.out.print(", Age: " + age);
}
Run Code Online (Sandbox Code Playgroud)
我的问题是我没有创建“ mydb”数据库。另外在哪里可以看到创建的数据库和表?
您已经在内存中创建了数据库,因此表/数据没有持久性文件,然后关闭应用程序,所有数据都丢失了。
如果要使其永久修复,请修复连接创建:将mem替换为file。像这样:
Connection conn = DriverManager.getConnection("jdbc:hsqldb:file:mydb", "sa", "");
Run Code Online (Sandbox Code Playgroud)
您可以在此处了解不同的HSQLDB模式。您也可以指定路径,数据库将在其中存储文件:
jdbc:hsqldb:file:/file/path/to/test"
Run Code Online (Sandbox Code Playgroud)
首次运行后,HSQLDB将创建几个文件。您可以在这里阅读每个文件的目的。
test.properties 包含条目“ modified”。如果条目“ modified”设置为“ yes”,则说明数据库正在运行或未正确关闭(因为关闭算法最后将“ modified”设置为“ no”)。
test.script 该文件包含组成数据库的SQL语句,直到最后一个检查点-它与test.backup同步。
test.data 此文件仅包含CACHED表的(二进制)数据记录。
test.backup 这是压缩的文件,其中包含最后一个检查点时旧test.data文件的完整备份。
test.log 该文件包含自上一个检查点以来已修改数据库的多余SQL语句(类似于“ Redo-log”或“ Transaction-log”,只是文本)。
顺便说一句,您可以使用此查询获取所有表:
SELECT * FROM INFORMATION_SCHEMA.SYSTEM_TABLES where TABLE_TYPE='TABLE'
Run Code Online (Sandbox Code Playgroud)
您可以像普通查询一样执行此查询:
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM INFORMATION_SCHEMA.SYSTEM_TABLES where TABLE_TYPE='TABLE'");
while(rs.next()) {
...
}
Run Code Online (Sandbox Code Playgroud)
您也可以使用内置管理器查看数据库。您可以使用以下命令开始:
java -cp /path/to/hsqldb.jar org.hsqldb.util.DatabaseManager
Run Code Online (Sandbox Code Playgroud)
然后指定数据库的路径:
jdbc:hsqldb:file:mydb
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用SQuirreL之类的流行工具。
| 归档时间: |
|
| 查看次数: |
6476 次 |
| 最近记录: |