gpt4 book ai didi

java - 打开数据库管理句柄

转载 作者:行者123 更新时间:2023-12-02 08:17:56 26 4
gpt4 key购买 nike

我正在使用伯克利数据库......

通常在这种类型的数据库中,您打开一个环境,其中有一堆文件来控制锁定和事务等,然后在这个环境中打开数据库...

问题是有很多数据库需要打开......
打开数据库的方法是opendatabase()
然而打开和关闭数据库总是很慢......文档说

Opening a database is a relatively expensive operation, and maintaining a set of open databases will normally be preferable to repeatedly opening and closing the database for each new query.

问题是如何维护该集合??????
我认为一个简单的解决方案是延迟加载

 private static Database db;
public CustomerDAO() {
if (db == null) {
try {
DatabaseConfig dbConfig = new DatabaseConfig();
dbConfig.setAllowCreate(true);
dbConfig.setType(DatabaseType.BTREE);
db = BDBEnvironment.DEFAULT.getEnvironment().openDatabase(null, "C:\\xxxx\\CUSTOMERS",
null, dbConfig);

但这有双重检查锁定的问题..对吗???
另一个问题是我想要一个默认文件名或用户指定的文件名。当然,创建 DatabaseManager 很容易,但总是会发生双重检查锁定问题。
有什么想法如何维护一组数据库句柄吗?

最佳答案

使用基本的 Java 同步技术和线程安全的数据结构,例如 ConcurrentHashMap存储您的数据库句柄。您可能应该阅读this book如果您还没有这样做,因为它涵盖了解决此类问题所需的很多内容。

关于java - 打开数据库管理句柄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5986301/

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