BDB Java Edition
BDB 的全称是Berkeley Database,是一种开源的嵌入式数据库,也可以说是一种文件数据库。
它介于关系数据库与内存数据库之间,使用方式与内存数据库类似也是Key-Value存储。
它能够将各种类型的对象直接保存到文件,而且为其建立了强大的API类库。
极客星云
赵庆峰(极客星云),Java领域技术布道师,CSDN博客专家,毕业于安阳师范学院,目前担任百融云创高级研发工程师,专注于JAVA后端技术,喜欢有挑战性和难度的技术攻关任务。
展开
-
1. Think in Berkeley Database Java Edition 概述
1. 什么是BDB?BDB 的全称是Berkeley Database,是一种开源的嵌入式文本数据库。它介于关系数据库与内存数据库之间,使用方式与内存数据库类似,因为它也是基于Key-Value形式存储,但它与内存数据库相比要更加强大。强大在于有以下这些特性:一个高性能的Key-Value数据库,支持上百万的数据记录制约限制是硬件而不是你它本身完整的ACID事务支持游标和二...原创 2018-06-29 11:21:16 · 1038 阅读 · 0 评论 -
2. Think in Berkeley Database Java Edition 实战JE 保存和读取一个对象
经过上篇博文的学习,相信你已经对Berkeley Database Java Edition 对象有了一定的了解,那么现在我们就来试试怎么样把一个对象保存到Berkeley Database 文件数据库中并进行读写。实战JE 保存和读取一个对象1.首先我们需要创建一个Java Project,我给它取名叫 BDB_JE_Traning2.然后我们需要下载JE(Berkeley Da...原创 2018-06-29 17:33:54 · 569 阅读 · 0 评论 -
3. Think in Berkeley Database Java Edition 实战JE 数据访问器保存和读取多个对象
上篇博文我们已经实战JE 保存和读取单个对象,这节课我们将挑战下通过数据访问器来保存和存储多个对象。数据访问器也许你只是第一次听说,不用担心,它只是对代码做了一定的封装而已好了,话不多说,我们开始。首先我们还是需要一个工具类,来管理我们的Environment 和EntityStore 的初始化和关闭。 代码详情如下:import java.io.File;import co...原创 2018-07-02 09:52:56 · 514 阅读 · 0 评论 -
4.Think in Berkeley Database Java Edition 之增删改查实战指南
本篇博文对之前所学做一个总结原创 2018-07-18 15:33:41 · 971 阅读 · 0 评论 -
BDB 事务篇 第2章 Enabling Transactions 启用事务处理
要在应用程序中使用事务,必须将其打开。 要做到这一点,你必须:为您的环境启用事务。 您可以使用EnvironmentConfig.setTransactional()方法或使用je.env.isTransactional je.properties参数执行此操作。如果您使用DPL,则为您的商店启用交易。 您可以使用StoreConfig.setTransactional()方法执行此操作。...翻译 2018-07-13 14:11:19 · 379 阅读 · 0 评论 -
BDB 事务篇 第3 章 Transaction Basics 事务处理基础
为环境和数据库启用事务后,可以使用它们来保护数据库操作。 您可以通过获取事务句柄然后将该句柄用于要参与该事务的任何数据库操作来执行此操作。您使用Environment.beginTransaction()方法获取事务句柄。完成要包含在事务中的所有操作后,必须使用Transaction.commit()方法提交事务。如果出于任何原因,您想要放弃该事务,则使用Transaction.abo...翻译 2018-07-13 15:02:10 · 547 阅读 · 0 评论 -
BDB 事务篇 第4章 Concurrency 并发
JE甚至在不使用交易时也为多线程应用程序提供了大量支持。 许多JE的句柄都是线程安全的,JE提供了一个灵活的锁定子系统,用于管理并发应用程序中的数据库。 此外,JE提供了用于检测和响应锁冲突的强大机制。 本章将探讨所有这些概念。在继续之前,定义本章中将出现的一些术语非常有用:Thread of control 控制线程指的是在您的应用程序中执行工作的线程。通常,在本书中该线程将执行...翻译 2018-07-13 17:20:52 · 553 阅读 · 0 评论 -
BDB 事务篇 第5章 备份和还原 Berkeley DB, Java Edition应用程序
Backing up and Restoring Berkeley DB, Java Edition Applications (备份和还原Berkeley DB,Java Edition 应用程序)从根本上说,您通过将JE日志文件复制到安全存储位置来备份数据库。要从备份还原数据库,请将这些文件复制到磁盘上的相应目录,然后重新启动JE应用程序。请注意,如果您使用子目录存储JE日志文件,则备...翻译 2018-07-17 16:21:38 · 1070 阅读 · 0 评论 -
BDB 事务篇 第6章 Summary and Examples 摘要和例子
在本手册中,我们介绍了为应用程序提供事务保护所需的概念和机制。 在本章中,我们总结了这些机制,并提供了一个多线程事务JE应用程序的完整示例。6.1 Anatomy of a Transactional Application 事务申请的剖析事务应用程序的特点是执行以下活动:创建环境句柄。打开您的环境,指定要使用事务子系统。如果您使用的是基本API,请打开数据库句柄,指示它们是...翻译 2018-07-17 17:08:34 · 472 阅读 · 0 评论 -
BDB 事务篇 第1章. Berkeley DB, Java Edition事务处理介绍
英语原文1. 介绍本书提供了与Berkeley DB,Java Edition(JE)一起使用的事务的全面介绍和讨论。 本手册中使用了基本API和直接持久层(DPL)API。 首先概述了事务,它们提供的保证以及为数据获取完整事务保护所需的一般应用程序基础结构。本书还提供了有关如何编写事务性应用程序的详细示例。 讨论了单线程和多线程。 本手册中包含各种备份和恢复策略的详细说明,以及有关事...翻译 2018-07-13 13:53:41 · 679 阅读 · 0 评论 -
BDB 入门篇 第6章 A DPL Example一个DPL 例子
第6章 A DPL Example一个DPL 例子为了说明DPL的用法,我们在本章中提供了一个完整的工作示例。 本示例读取和写入虚构业务的清单和供应商信息。 该应用程序由以下类组成:几个类用于封装我们的应用程序的数据。 请参阅Vendor.java和Inventory.java。用于打开和关闭我们的环境和Entity Store的便利课程。 请参阅MyDbEnv。将数据加载到S...翻译 2018-06-27 12:48:28 · 3879 阅读 · 0 评论 -
BDB 入门篇 第5章 Saving and Retrieving Objects 保存和检索对象
第5章 Saving and Retrieving Objects 保存和检索对象要将对象存储在EntityStore中,您必须对类进行相应的注解,然后将其存储PrimaryIndex.put()为了从EntityStore中取出对象,可以使用PrimaryIndex或SecondaryIndex中的get()方法,以最适合您的应用程序的方式为准。在这两种情况下,如果您创建数...翻译 2018-06-27 10:11:19 · 494 阅读 · 0 评论 -
BDB 入门篇 第4章Working with Indices使用索引
第4章Working with Indices使用索引使用DPL存储在JE中的所有实体类都必须具有为其标识的主索引或密钥。 所有这些类也可能有一个或多个为它们声明的辅助键。 本章详细介绍主要和次要索引,并说明如何访问为给定实体类创建的索引。组织访问主要和次要索引的一种方法是创建一个数据访问器类。4.1 Accessing Indexes 访问索引为了从实体存储中检索任何对象,您...翻译 2018-06-26 11:32:47 · 802 阅读 · 0 评论 -
BDB 入门篇 第3章 DPL First Steps 直接持久层第一步
第3章 Direct Persistence Layer First Steps内容目录Entity Stores (存储实体对象)Opening and Closing Environments and Stores (打开和关闭环境和存储对象)Persistent Objects (持久对象)Saving and Retrieving Data (保存和持久对象)本章将指...翻译 2018-06-26 10:53:41 · 516 阅读 · 0 评论 -
BDB 入门篇 第2章 Database Environments
第2章 Database Environments无论您使用的是Direct Persistence Layer(DPL)还是基础API,都必须使用数据库环境。数据库环境封装一个或多个数据库。通过允许为环境中包含的每个数据库使用单个内存中缓存,此封装为您的线程提供了对数据库的有效访问。此封装还允许您在单个事务内对多个数据库执行的操作进行分组(有关更多信息,请参阅Berkeley DB,Java...翻译 2018-06-26 09:49:48 · 673 阅读 · 0 评论 -
BDB 入门篇 第1章 Berkeley DB Java Edition简介
目录1. Introduction to Berkeley DB Java Edition1.1 Features(特点)1.1.1 DPL Features (DPL 特点)1.1.2 Base API Features (底层API特点)1.1.3 Which API Should You Use? (你应该使用那种API?)1.2 The JE...翻译 2018-06-26 09:47:51 · 3510 阅读 · 0 评论 -
Class could not be loaded or is not persistent: java.sql.Timestamp(BDB JE)
问题背景最近在使用Berkeley DB 持久化一个实体类,这个实体类中有个字段是java.sql.TimeStamp类型然后程序运行就出现了如下错误:Class could not be loaded or is not persistent: java.sql.Timestamp故障分析出现这个错误是因为Berkeley DB 里面也有一个Timestamp类型,这个类型 和ja...原创 2019-09-06 14:46:59 · 425 阅读 · 0 评论