![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
BDB
iteye_19622
这个作者很懒,什么都没留下…
展开
-
BerkeleyDB-JE 简介
Berkeley DB Java Edition(JE)是一个使用纯java编写的通用的,支持事务的,嵌入式的数据库。它让java开发人员可以安全而有效的在进程中存储和管理任意的数据。 JE提供了两种API供开发人员选择开和数据库交互。 [list] [*]直接持久层(DPL),有点类似于Hibernate或JPA一样的ORM技术,通过DPL你可以很方便持久化任何类型的数据。 [*]基本A...2011-04-13 16:23:56 · 253 阅读 · 0 评论 -
BerkeleyDB-JE 使用BaseAPI(八)
本篇继续介绍Secondary Databases,主要介绍如何使用Secondary Databases。 [b] 一.读记录[/b] 从Secondary Databases中读取数据跟一般数据库中读取数据没啥两样,最大的区别在于返回的key和data是来自于Primary Database中的。例如下面的例子使用上面一篇创建的Secondary Data,根据名字来查...2011-04-21 08:46:30 · 188 阅读 · 0 评论 -
BerkeleyDB-JE 使用BaseAPI(七)
本篇开始介绍二级数据库(Secondary Databases)的使用。 通常情况下,我们根据key值来查找JE中的记录,但是key值不一定会包含你所要想要查询的值,比如JE中有个用户库,你使用一个唯一的没有什么意义的ID作为key值,而data值是一个复杂的java对象,它封装了用户名,性别,生日,年龄等信息,如果你想查找某个具有某个名字的用户记录,那么你可能要遍历整个数据库。...2011-04-21 08:45:43 · 155 阅读 · 0 评论 -
BerkeleyDB-JE 使用BaseAPI(六)
本篇继续介绍游标的使用,使用游标来增删改记录 一.增加记录当你使用游标来插入记录的时候,游标将位于插入的记录的位置。游标提供了下面几个API来插入记录。 [list] [*]Cursor.put() 插入一条记录,如果记录的key值已存在于数据库中,当数据库不支持重复记录时,旧的记录会被替换;否则会插入一条重复记录。 [*]Cursor.putNoDupData() 当要插入的记录键...2011-04-19 09:34:46 · 106 阅读 · 0 评论 -
BerkeleyDB-JE 使用BaseAPI(五)
本篇开始介绍游标(Cursors)的应用,主要介绍打开关闭游标以及使用游标来定位记录。 在JE中你可以使用游标来遍历记录,还可以使用游标来增删改记录。同时游标还是唯一一种可以用于访问重复记录集中记录的机制。 一.打开和关闭游标 你可以使用Database.openCursor()方法来打开一个游标,使用Cursor.close()方法来关闭它。需要注意的是关闭游标的顺序,你必须先关闭游标,再...2011-04-19 09:34:22 · 108 阅读 · 0 评论 -
BerkeleyDB-JE 使用BaseAPI(四)
本篇开始介绍使用比较器 JE中的数据库内部是使用B树来组织的,这意味着大多数数据库操作(插入,删除,读取,等等)涉及B树节点的比较。这种比较一般情况下是基于记录的键,但是如果你的数据库支持重复数据,那么比较也会涉及到记录的值。 默认情况下,JE使用一个一个字节来进行字典比较(byte-by-byte lexicographic comparison)。这种机制适用于大多数的数据。然而,在某些情...2011-04-18 10:42:14 · 100 阅读 · 0 评论 -
BerkeleyDB-JE 使用BaseAPI(三)
本篇开始介绍BIND APIs 我们已经知道,要想在JE中读写数据,必须借助DatabaseEntry对象,而原始数据和DatabaseEntry对象之间的转换,实际上要做的就是把数据转化为字节数组或者是把字节数组组装成数据。除了String类型和布尔型的数据,要进行这样的转换则必须使用JE中的BIND APIs。 可以使用BIND APIs的数据基本上分为三种: [list] [*]简单...2011-04-18 10:41:59 · 105 阅读 · 0 评论 -
BerkeleyDB-JE 使用BaseAPI(二)
本篇介绍使用BaseAPI来操作Java简单类型的数据。 首先我们知道JE中的数据库是键值对的集合,那么数据库中的每一条记录都是一个键值对。键和值可以是任何简单类型的对象,也可以是自定义的复杂类型的对象。在JE中是用 DatabaseEntry类来表示键和值的。这个类可以持有任何类型的数据,只要这个数据可以转化为字节数组。 我们现在演示下字符串类型的数据转化为DatabaseEntry [c...2011-04-17 23:20:37 · 140 阅读 · 0 评论 -
BerkeleyDB-JE 使用BaseAPI(一)
本篇开始介绍JE的具体使用。 在JE中,一个数据库(database)就是一系列键值对的集合。你可以把JE中的数据库理解为只有两个列的表,一个列是键,一个列是值。同时要注意的是,键和值可以是简单的数据类型,比如数字型或字符串型,也可能是复杂的对象类型。我们可以使用database来管理键和值,比如对它们的增删改操作。 下面演示打开和关闭database。 [code="java"] Env...2011-04-17 23:19:57 · 158 阅读 · 0 评论 -
BerkeleyDB-JE Hello World(使用DPL)
现在使用JE中的DPL来演示Hello World,使用DPL非常像Hibernate之类的ORM框架,把数据库中的每条记录都用一个bean来表示,其他的CRUD操作想较于BaseAPI也简单了很多。 [code="java"] /** * 代表了数据库中的记录 */ @Entity class SimpleBean { @PrimaryKey private Strin...2011-04-15 23:28:18 · 180 阅读 · 0 评论 -
BerkeleyDB-JE Hello World(使用BaseAPI)
在进一步介绍JE之前,我们先看个BaseAPI版的Hello World,这个例子演示了JE最一般的使用方法,打开环境和Database,持久化数据,查询数据,关闭环境和Database。 [code="java"] /** * 用BaseAPI保存和获取数据 * @author mengyang * */ public class HelloWorldByBaseAPI {...2011-04-15 23:27:34 · 164 阅读 · 0 评论 -
BerkeleyDB-JE Environments
Environments封装了一个或多个的数据库。个人觉得可以理解为是JE的总的配置的环境。我们一般用它来打开database,或者是取得transaction。 下面演示打开和关闭Enviroment。 [code="java"] Environment myDbEnvironment = null; try { EnvironmentConfig envConfig = ne...2011-04-13 16:24:39 · 214 阅读 · 0 评论 -
BerkeleyDB-JE 事务管理
本篇开始讲解BerkeleyDB的事务管理 显然,作为一个成熟的数据库产品,都必须提供事务机制来保证数据的ACID特性。我们之前讲的BerkeleyDB都没有在事务环境中进行操作。现在我们开始讲解如何使用事务,以及配置事务的各种特性。 实现一个最简单的事务系统,有几个步骤: 1.配置Environment环境支持事务 2.获取一个事务句柄 3.提交或回滚事务 [code="java"]...2011-04-22 10:55:04 · 172 阅读 · 0 评论