Welcome

首页 / 软件开发 / JAVA / 借助BeanKeeper快速实现对象持久化

借助BeanKeeper快速实现对象持久化2010-11-20 IBM 罗后启引言

NetMind BeanKeeper 是一个开源的 java 对象 / 关系数据库映 射框架,它可以帮助用户快速将对象保存到关系数据库中,同时它也支持自定义 地查询和事务,可以满足用户在各种应用场景的需求。它最大的特点就是简单, 无需配置。同时,它是纯 Java 的,也支持 HSQLDB 和 MySQL 等多种关系。本文将介绍 BeanKeeper 的基本原理和架构,并将其同 Hibernate、Spring 等其他框架进行比较,总结其主要优点。最后将演示一个案例介绍如何借助 BeanKeeper 快捷地实现将 Java 对象保存到关系数据库中。

BeanKeeper 的架构

对象持久性几乎是所有 Java™ 应用程序( 从桌面应用程序到企业级应用程序)中的必备,持久性的缺点是它一直都不太简 单。

面向对象的开发方法是当今企业级应用开发环境中的主流开发方法 ,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对象和关 系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中 表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系 数据无法直接表达多对多关联和继承关系。因此,需要 ORM(Object Relational Mapping)实现程序对象到关系数据库数据的映射。

由于关 系数据库是目前最流行的存储系统,因此要将对象持久化到关系数据库中,我们 就要解决 ORM 的问题。目前主流的 ORM 框架有:Spring、Hibernate 等框架。 它们都存在一个问题是:太复杂了。要利用这些框架进行对象持久化,开发人员 首先要阅读几百页的文档以了解如何使用这些框架,然后又要编写 XML 配置映 射文件以告诉框架如果和进行 ORM。而且一旦对象模型发生改变后又要修改映射 文件。这些都极大地增加了开发人员的学习曲线和工作量,同时也容易出错。而 Bean keeper 的理念是简单的事情简单做,它尽量简化这些操作。

Bean Keeper 是一个基于 LGPL 协议的开源软件,它具有如下特性:

使用简单,你只需要学习 3 个借口就可以基本掌握其使用方法 ;

零配置。除了数据库的连接 URL 外。你不需要其他配置 ;

可扩展性,这个类库支持分布式操作,可以将您的数据进行多拷贝存储和负 载平衡 ;

100% 地透明地支持 List、Map、Set 等集合 ;

自动分页大数据集。分页是 100% 透明地,包含百万条记录的数据集可以直 接地给表现层,而不用担心内存和数据库负载的问题 ;

自定义的面向对象的查询语言,用户不需要编写复杂的 SQL 语句 ;

各种数据库间的可移植性。BeanKeeper 屏蔽了各类数据库之间的差异,比如 对 Null 值的处理,空字符串 (Oracle),查询时大小写敏感,保留字等差异。 这就意味着你可以更改底层的数据库 ;

对事务的支持,能够实现事务的提交和回滚。

下载 BeanKeeper

BeanKeeper 的安装过程很简单。首先,访问 BeanKeeper 站点下载 Jar 包 。目前最新的发布版本是 2.6.0。本文中所有示例也是基于此版本。

BeanKeeper 是基于 LGPL 协议的,你可以在你的商业软件中商业软件通过类 库引用 (link) 方式使用它而不需要开源商业软件的代码。但是如果修改它的代 码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须 采用 LGPL 协议。

图 1. BeanKeeper 目前版本