2011-08-05 76 views
0

我有一个带有.tld扩展名(eBay Turbolister文件)的BerkeleyDB数据库。 Linux命令'文件'确认这个是一个BerkeleyDB数据库的。我正在关注教程http://download.oracle.com/docs/cd/E17277_02/html/collections/tutorial/opendbenvironment.htmlBerkeleyDB数据库文件打开(java)

com.sleepycat.je.Environment构造函数接受一个目录而不是文件。读一点,我发现这个目录应该包含数据库文件和其他文件,如日志。

我的问题是:如何指定要打开的数据库的文件名 - 或者数据库文件是否需要具有特定的文件名?其次,该文件需要在自己的目录吗?

com.sleepycat.je.Environment具有接受文件名下面的方法:


一些免费信息,下面我的答案浏览API的JavaDoc后发现

public Database openDatabase(Transaction txn, 
          String databaseName, 
          DatabaseConfig dbConfig) 

回答

2

的您提到的教程适用于Berkeley DB的Java版本。你确定你的数据库文件是用Java版创建的吗?

Berkeley DB的本地版本也有Java绑定,但使用本地库。也许这更合适?

包含在本机版本中的命令行工具如db_statdb_verify。您可以使用这些工具检查您的文件,而无需编写程序。

+0

感谢您解决困惑。如果它确实是一个BDB文件,那么我将不得不编写一个将它迁移到Hibernate SQL SB的Java程序,以便它可以在Web应用程序中使用。我将查找您提到的工具和Java绑定。 –

+0

db_verify桌面/ panag_3.tld 桌面/ panag_3.tld验证成功。 所以现在我将不得不查找Java绑定。 –

+1

Berkeley DB库的Java绑定提供了一种在给定“File”的情况下打开'Environment'的方法,但它仍然指定了包含的目录。 http://download.oracle.com/docs/cd/E17275_01/html/java/com/sleepycat/db/Environment.html#Environment%28java.io.File,%20com.sleepycat.db.EnvironmentConfig%29“环境#openDatabase()'call确实接受一个文件名,尽管目前还不清楚它是否需要包含在Environment的目录中。 – seh