- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于 hibernate 持久层设计方案
1. 持久层概述
1.1. 持久层功能概述
持久层主要负责与数据库的交互,是一组软件服务,将应用程序与其使用的数 据源分离,是业务逻辑层与数据库的桥梁。
1.2. 设计目标
我们设计持久层要达到的目标:
将数据持久逻辑与表示和业务逻辑分开的整洁机制 使数据所在的数据库平台对于框架的应用程序完全隐藏起来 抽象数据库中存储数据的物理细节和数据库实体之间存在的关系 简化开发过程,隐藏打开数据库连接,事务管理等细节
基于以上目标,我们这里采用对象 -关系型数据库映射(ORM的方法来操作数 据库。
1.3. 使用持久层开发基本过程 基于框架,持久层的基本开发过程如下: 编写持久层环境配置文件( persistence.xml )。 编写 bo( Bussiness Object )实现业务功能和业务描述。 编写 bo 和数据库表之间的映射关系描述( annotation )。 使用 dao 对象对 bo 执行持久化操作。
持久层环境
2.1. 概述 使用框架的持久层开发之前,我们要先做一些准备,搭建好持久层的环境,也 就是编写持久层环境配置文件 persistence.xml 。
编写 persistence.xml
persiste nce.xml 文件是持久层与数据库连接属性的配置文件,可以直接使用
weblogic的数据源。
我们现在使用weblogic的数据源OracleDS,配置文件的代码如下:
?xml versio n=1.0 en codi ng=UTF-8?
hibern ate-con figurati on
sessi on-factory n ame=persiste nce.sword
sessi on- factory-c on fig
property
n ame=hibernate.j ndi.classweblogic.j ndi.WLI nitialC on textFactoryv/pr
operty
vproperty
name=hibernate.j ndi.urlt3://127.0.0.1:8001/property
vproperty
n ame=c onn ecti on. datasourceOracleDS/property
vproperty
n ame=dialectorg.hiber nate.dialect.Oracle9Dialect/property
vproperty n ame=show_sqltrue/property
vproperty
n ame=co nn ectio n.provider_classorg.hibernate.c onn ectio n.DatasourceC
onnection Providerv/property
vproperty n ame=jdbc.fetch_size50v/property
vproperty n ame=jdbc.batch_size25v/property
vproperty n ame=c onnnection. charSetGBKv/property
v/sessio n-factory-c on fig
v/sessio n-factory
v/hibern ate-con figuratio n
实现0-R映射
创建 bo (Buss in ess Object )
我们使用bo来实现业务描述
创建bo的步骤:
bo须继承某一 bo的基类(此基类可以根据具体项目来具体封装,但一定要 继承类 SwordBaseBO。
为bo的每个属性添加get和set方法
在 set 方法中添加 support.firePropertyChange() 方法
为bo添加注释
在关系数据库中建立相应的表
下面我们来使用一个具体的例子来说明创建一个 bo的过程。
下面是LeaveBO.java的部分源代码
public class LeaveBO exte nds SwordBaseBO
private In teger id;
private String n ame;
public Integer getId () {
return id;
}
public void setId (Integer id) {
support.firePropertyChange(id, this.id, id);
this.id = id;
}
public Stri ng getName() {
return n ame;
}
public void setName(Stri ng n ame) {
support.firePropertyCha nge(” name, this. nam
文档评论(0)