gpt4 book ai didi

hsqldb - 数据库锁获取失败和hsqldb

转载 作者:行者123 更新时间:2023-12-03 11:53:56 24 4
gpt4 key购买 nike

我试图连接到一个 hsql 数据库。我通过从 C:\myhsql 运行创建了一个:

java -cp .;C:\hsql\lib\hsqldb.jar org.hsqldb.Server -database.0 file:db\mydb -dbname.0 MYDB

这创建了 mydb在名为 db 的目录中.该文件夹现在有一个名为 mydb 的 .lck、tmp、script、properties 文件,以及当前文件夹中名为 MYDB 的类似文件。

在我试过的java代码中
Class.forName("org.hsqldb.jdbcDriver");
connection = DriverManager.getConnection("jdbc:hsqldb:file:db/sjdb", "SA", "");

当我运行程序时,我收到此错误:
java.sql.SQLException: Database lock acquisition failure: lockFile: org.hsqldb.persist.LockFile@f3811c1a[file =C:\myhsql\db\mydb.lc
k, exists=true, locked=false, valid=false, ] method: checkHeartbeat read: 2010-10-19 12:46:09 heartbeat - read: -6750 ms.
...

这是堆栈跟踪:
java.sql.SQLException: Database lock acquisition failure: lockFile: org.hsqldb.persist.LockFile@f3811c1a[file =C:\myhsql\db\sjdb.lc
k, exists=true, locked=false, valid=false, ] method: checkHeartbeat read: 2010-10-19 12:46:09 heartbeat - read: -6750 ms.
at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCConnection.<init>(Unknown Source)
at org.hsqldb.jdbc.JDBCDriver.getConnection(Unknown Source)
at org.hsqldb.jdbc.JDBCDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at ConnectHSQLDB.main(ConnectHSQLDB.java:20)
Caused by: org.hsqldb.HsqlException: Database lock acquisition failure: lockFile: org.hsqldb.persist.LockFile@f3811c1a[file =C:\myhsql\db\sjdb.lck, exists=true, locked=false, valid=false, ] method: checkHeartbeat read: 2010-10-19 12:46:09 heartbeat - read: -6750 ms.
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.persist.LockFile.newLockFileLock(Unknown Source)
at org.hsqldb.persist.Logger.acquireLock(Unknown Source)
at org.hsqldb.persist.Logger.openPersistence(Unknown Source)
at org.hsqldb.Database.reopen(Unknown Source)
at org.hsqldb.Database.open(Unknown Source)
at org.hsqldb.DatabaseManager.getDatabase(Unknown Source)
at org.hsqldb.DatabaseManager.newSession(Unknown Source)
... 6 more
java.lang.NullPointerException
at ConnectHSQLDB.main(ConnectHSQLDB.java:32)

有人可以告诉我我做错了什么吗?我可以使用 SwingDBManager 连接到数据库,并且可以 insert , delete , 和 select数据库中的记录。当我尝试 java 代码时,我没有运行 DBManager。仍然发生锁定问题。

最佳答案

第一个命令启动服务器。该服务器锁定数据库文件,以便“其他人”无法修改它们。您应该使用“-dbname.0 mydb”而不是“MYDB”,因为它应该是小写的。

您连接到数据库的 Java 连接 URL 是错误的。您应该使用“jdbc:hsqldb:hsql://localhost/mydb”作为连接字符串。当数据库文件被服务器锁定时,您可以访问数据库服务器,但不能使用 file: URL 访问“进程中”数据库。

关于hsqldb - 数据库锁获取失败和hsqldb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3968595/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com