`
mengyang
  • 浏览: 266112 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

BerkeleyDB-JE 使用BaseAPI(一)

    博客分类:
  • BDB
阅读更多
本篇开始介绍JE的具体使用。
在JE中,一个数据库(database)就是一系列键值对的集合。你可以把JE中的数据库理解为只有两个列的表,一个列是键,一个列是值。同时要注意的是,键和值可以是简单的数据类型,比如数字型或字符串型,也可能是复杂的对象类型。我们可以使用database来管理键和值,比如对它们的增删改操作。
下面演示打开和关闭database。
Environment myDbEnvironment = null;   
Database database = null; 
try {   
    EnvironmentConfig envConfig = new EnvironmentConfig();   
    envConfig.setAllowCreate(true);   
    myDbEnvironment = new Environment(new File("/export/dbEnv"),    
                                      envConfig);   
    DatabaseConfig dbConfig = new DatabaseConfig();   
    dbConfig.setAllowCreate(true);   
    database = env.openDatabase(null, "baseAPIDemo", dbConfig); 

    ...
    // do work
    ...
} catch (DatabaseException dbe) {   
    // Exception handling goes here   
} finally{   
    database.close();   
    myDbEnvironment.close();   
} 

通常我们使用Environment来打开一个database,在打开的时候要指定这个database的名字。先打开Environment,再用这个Environment打开一个database,然后在所有事情做完后,要记得关闭database和Environment,先关闭database,再关闭Environment。

接着我们讨论下database的属性配置
跟Environment一样,database也可以通过DatabaseConfig进行配置。
  • DatabaseConfig.setAllowCreate()
  • 设置当不存在该数据库的时候是否创建一个新的库
  • DatabaseConfig.setBtreeComparator()
  • 设置用来决定数据库中记录顺序的排序器
  • DatabaseConfig.setDuplicateComparator()
  • 设置用来比较重复数据的排序器
  • DatabaseConfig.setSortedDuplicates()
  • 设置该数据库是否允许重复的数据
  • DatabaseConfig.setExclusiveCreate()
  • 设置当存在该数据库的时候是否会打开数据库失败
  • DatabaseConfig.setReadOnly()
  • 设置数据库是否只读
  • DatabaseConfig.setTransactional()
  • 设置事务属性
  • DatabaseConfig.setDeferredWrite()
  • 设置延迟写属性
  • DatabaseConfig.setTemporary()
  • 设置该数据库是否为临时数据库(Temporary Databases)

设置这些数据库的属性非常简单,只要实例化一个DatabaseConfig对象,然后设置它,并在打开数据库的时候传入就可以了。以下演示下database属性设置
DatabaseConfig dbConfig = new DatabaseConfig();   
dbConfig.setAllowCreate(true);   
dbConfig.setReadOnly(false); 
dbConfig.setTransactional(false); 
database = env.openDatabase(null, "baseAPIDemo", dbConfig);

以上关于排序器和重复数据的讨论我们将放到后续章节中进行。我们现在重点讨论两个属性:
[list]
  • 延迟写数据库(Deferred Write Databases)
  • 默认情况下,数据库会在操作的时候写入变化到磁盘中,如果你使用了事务,那么将会在事务提交的时候写入变化。但是如果你启用了延迟写配置,数据库不会把变化立即写入,除非1.显式的调用了Database.sync()方法;2.缓存满了;3.到达了检查点(checkpoint)。
    延迟写可以带来以下两个好处:
    1.在多线程情况下,可以减少写操作的瓶颈。
    2.可以减少写操作数据库,比如你一条记录你多次修改了它,那只会最后一次的改变会被写入到数据库中。
    数据库也可以在延迟写和普通库之间进行转换,比如你要加载很大量的数据到数据库中,明显的延迟写数据库相较于普通数据库有更好的性能,这时你可以在加载大数据的时候设置延迟写,在加载完毕之后一次性的写入到数据库中。然后关闭数据库,再使用普通数据库配置属性打开。
    设置DatabaseConfig.setDeferredWrite(true),可以让数据库变成延迟写数据库。
    DatabaseConfig dbConfig = new DatabaseConfig();
    // Make it deferred write
    dbConfig.setDeferredWrite(true);
    myDatabase = myDbEnvironment.openDatabase(null, 
                                                  "sampleDatabase", 
                                                  dbConfig); 
    ...
    // do work
    ...
    
    myDatabase.sync();
    
  • 临时数据库(Temporary Databases)
  • 这是一个很特殊的数据库,打开临时数据库后,你可以像一般的数据库一样对它进行操作,但是在关闭这个数据库后所有的数据将被清除。也就是说临时数据库中的数据不是持久性的。
    并且临时数据库内部采用了延迟写,但是这并不意味着临时数据库将不会发生I/O操作,当缓存满的时候,数据库仍然会把数据写入到磁盘上。临时数据库拥有延迟写数据库的所有优点,但是有一点不同于延迟写数据库,它不会在到达检查点的时候进行写入。
    设置DatabaseConfig.setTemporary(true),可以让数据库变成延迟写数据库。
    DatabaseConfig dbConfig = new DatabaseConfig();
    dbConfig.setTemporary(true);
    myDatabase = myDbEnvironment.openDatabase(null, 
                                                  "sampleDatabase", 
                                                  dbConfig); 
    

    [/list]
    0
    0
    分享到:
    评论

    相关推荐

      BerkeleyDB-JE je-6.0.11

      Oracle BerkeleyDB-JE je-6.0.11

      BerkeleyDB-Core-C-GSG.pdf

      本手册是为初学者及有一定经验的开发者设计的,旨在提供一个全面、系统的指南来帮助读者理解 Berkeley DB 的基本概念、数据库管理、记录操作、游标使用以及二级数据库的实现等方面的知识。此外,手册还详细介绍了...

      Berkeley DB JE-7.0.6

      Berkeley DB JE(Java Edition)是Oracle公司提供的一款开源、嵌入式、基于Java的键值对数据库系统。它以其轻量级、高性能和高可用性而受到广泛的青睐,尤其适合于需要在内存中管理大量数据的应用场景。在版本7.0.6...

      Java-Edition-BerkeleyDB-3.1.0.zip_BerkeleyDB

      在Je-3.1.0版本中,BerkeleyDB使用特定的数据库文件格式,这些文件可以在不同平台上进行迁移,确保了跨平台的兼容性。 **7. 性能优化** BerkeleyDB提供了多种性能调优选项,如缓存大小设置、日志文件管理等,...

      BerkeleyDB-Core-Cxx-GSG.rar

      **Berkeley DB (BDB)** 是一款开源的、嵌入式数据库系统,由Oracle公司提供。它被广泛用于需要高效本地存储和简单数据管理的软件应用程序中,特别是在那些对性能和可靠性有高要求的场景。BDB的核心特性包括事务处理...

      BerkeleyDB-Core-Cxx-GSG.rar_Berkeley DB_berkeley Db cxx

      Berkeley DB(简称BDB)是由Oracle公司开发的一款开源、轻量级、嵌入式数据库系统,主要用于处理键值对存储问题。它广泛应用于需要快速访问数据的环境,如网络服务器、嵌入式设备以及应用程序的本地数据存储等。在...

      db-4.7.25-master_db-4.7.25-master_berkeleydbvxworks_BerkeleyDB_源

      Berkeley DB是一个开源的文件数据库,介于关系数据库与内存数据库之间,使用方式与内存数据库类似,它提供的是一系列直接访问数据库的函数,而不是像关系数据库那样需要网络通讯、SQL解析等步骤,本文件是早期版本

      BerkeleyDB-0.26

      **BerkeleyDB** 是一款由 Oracle 公司开发的开源、高性能、无模式的键值对存储数据库系统。它在嵌入式环境和轻量级应用程序中被广泛使用,尤其适用于那些需要快速数据访问和简单数据管理的应用。BerkeleyDB 的设计...

      BerkeleyDB-Core-JAVA-GSG.pdf

      根据提供的文档信息,“BerkeleyDB-Core-JAVA-GSG.pdf”主要介绍了如何在Java环境中使用Berkeley DB。该文档强调了Berkeley DB作为一种文件类型数据库的优势,包括快速的存取速度和方便的操作特性。 #### 二、...

      Berkeley DB -- 入门知识和一个小例子_iyangjian2005997_新浪博客.mht

      Berkeley DB -- 入门知识和一个小例子_iyangjian2005997_新浪博客.mht

      BerkeleyDB-0.27

      **BerkeleyDB** 是一款强大的、高度可定制的嵌入式数据库系统,广泛应用于各种软件开发,尤其是在需要高效存储和检索数据的场景中。这款数据库系统由Oracle公司开发,最初在1990年由Sleepycat Software推出,因其...

      Berkeley DB -- Access Method Configuration_iyangjian200599

      (二) Berkeley DB -- Access Method Configuration_iyangjian2005997_新浪博客.mht

      Berkeley DB4.8以上各版本

      Berkeley DB是一款由Oracle公司开发的嵌入式数据库系统,被广泛应用于许多软件项目中,尤其是在需要快速、轻量级数据存储解决方案的场景下。它提供了键值对存储模式,适用于构建高性能的数据缓存和数据库应用程序。...

      BerkeleyDB Manual C/C++

      《BerkeleyDB Manual C/C++》是一份详尽的官方文档,主要针对使用C和C++语言进行数据库操作的开发者。BerkeleyDB是一款轻量级、高性能的关系型数据库管理系统,常用于嵌入式系统和分布式应用程序。这篇手册将深入...

      BerkeleyDB_java_jar包

      2. **Java API**:一组接口和类,如`Database`、`DatabaseEntry`和`Transaction`,使得开发者可以使用Java代码与BerkeleyDB进行交互。 3. **示例和文档**:可能包含演示如何使用BerkeleyDB Java API的示例代码,以及...

      Berkeley DB C++编程入门教

      这个教程的目标是为C++研发人员提供一个快速有效地了解和使用Berkeley DB的入门机制。同时,它也针对那些希望探索数据库内部数据管理解决方案的资深架构师。 在标签中,“Berkeley”、“嵌入”、“数据库”、“入门...

      Berkeley DB Java Edition (JE)

      Berkeley DB Java Edition (JE) 官方7.5.11下载版本。 相关介绍 https://blog.csdn.net/hadues/article/details/80854288

      berkeley db db-6.1.26.tar.gz

      db-6.1.26.tar.gz berkeley db

      BerkerleyDb-18.1.40.tar.gz

      BerkeleyDB(简称BDB)是由Oracle公司开发的一款开源、轻量级、嵌入式数据库系统。它以其高效、灵活和可靠的特点,广泛应用于各种软件项目,特别是在分布式系统、网络服务以及需要快速数据存储的应用中。在本文中,...

    Global site tag (gtag.js) - Google Analytics