基于hibernate持久层设计方案(DOC 35页)

上传人:公**** 文档编号:488577823 上传时间:2022-11-20 格式:DOC 页数:35 大小:138.50KB
返回 下载 相关 举报
基于hibernate持久层设计方案(DOC 35页)_第1页
第1页 / 共35页
基于hibernate持久层设计方案(DOC 35页)_第2页
第2页 / 共35页
基于hibernate持久层设计方案(DOC 35页)_第3页
第3页 / 共35页
基于hibernate持久层设计方案(DOC 35页)_第4页
第4页 / 共35页
基于hibernate持久层设计方案(DOC 35页)_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《基于hibernate持久层设计方案(DOC 35页)》由会员分享,可在线阅读,更多相关《基于hibernate持久层设计方案(DOC 35页)(35页珍藏版)》请在金锄头文库上搜索。

1、.基于hibernate持久层设计方案1.持久层概述1.1. 持久层功能概述持久层主要负责与数据库的交互,是一组软件服务,将应用程序与其使用的数据源分离,是业务逻辑层与数据库的桥梁。1.2. 设计目标我们设计持久层要达到的目标:l 将数据持久逻辑与表示和业务逻辑分开的整洁机制l 使数据所在的数据库平台对于框架的应用程序完全隐藏起来l 抽象数据库中存储数据的物理细节和数据库实体之间存在的关系l 简化开发过程,隐藏打开数据库连接,事务管理等细节基于以上目标,我们这里采用对象-关系型数据库映射ORM的方法来操作数据库。1.3. 使用持久层开发基本过程基于框架,持久层的基本开发过程如下:l 编写持久层

2、环境配置文件persistence.xml。l 编写boBussiness Object实现业务功能和业务描述。l 编写bo和数据库表之间的映射关系描述annotation。l 使用dao对象对bo执行持久化操作。2. 持久层环境2.1. 概述使用框架的持久层开发之前,我们要先做一些准备,搭建好持久层的环境,也就是编写持久层环境配置文件persistence.xml。2.2. 编写persistence.xmlpersistence.xml文件是持久层与数据库连接属性的配置文件,可以直接使用weblogic的数据源。我们现在使用weblogic的数据源OracleDS,配置文件的代码如下: w

3、eblogic.jndi.WLInitialContextFactory t3:/127.0.0.1:8001 OracleDS org.hibernate.dialect.Oracle9Dialect true org.hibernate.connection.DatasourceConnectionProvider 50 25 GBK 3. 实现O-R映射3.1. 创建boBussiness Object我们使用bo来实现业务描述创建bo的步骤:l bo须继承某一bo的基类此基类可以根据具体项目来具体封装,但一定要继承类SwordBaseBO。l 为bo的每个属性添加get和set方法l

4、在set方法中添加support.firePropertyChange方法l 为bo添加注释l 在关系数据库中建立相应的表下面我们来使用一个具体的例子来说明创建一个bo的过程。下面是LeaveBO.java的部分源代码public class LeaveBO extends SwordBaseBO private Integer id; private String name; public Integer getId return id; public void setId support.firePropertyChange; this.id = id; public String get

5、Name return name; public void setName support.firePropertyChange; this.name = name; .注意:l bo一定要继承类SwordBaseBOl 对于每个属性添加get和set方法。l 在set方法里注册firePropertyChange方法3.2. 设置标注EntityTablepublic class LeaveBO extends SwordBaseBO private Integer id; private String name; Id GeneratedValue GenericGenerator Col

6、umn public Integer getId return id; public void setId support.firePropertyChange; this.id = id; Column public String getName return name; public void setName support.firePropertyChange; this.name = name; .3.3. 在关系数据库中创建表我们在oracal数据库中创建表student,执行的sql为:create table T_LEAVE ID NUMBER not null, NAME VA

7、RCHAR2 not null, DAYS NUMBER, BEGINDATE DATE, ENDDATE DATE, DEPARTMENT VARCHAR2, TYPE VARCHAR2, TELEPHONE VARCHAR2, REASON VARCHAR2, SHENPI1 VARCHAR2, SHENPI2 VARCHAR2,;alter table T_LEAVE add constraint PK_ID primary key 4. 使用持久层操作数据库持久层的关键就是类型为IPersistenceDAO的对象,我们对数据库的操作都是通过这个对象来实现的,所以下面主要讲解如何在环境

8、中获得和使用IPersistenceDAO对象。4.1. 获得IPersistenceDAO对象可以使用以下代码获得IPersistenceDAO对象:IPersistenceDAO dao = this.getPersistenceDAO;4.2. 新增操作4.2.1. public void saveBOl 说明:a) saveBO方法用来对数据库中的一表执行插入操作b) 该方法仅仅用来对一表插入一条记录c) 当数据库中有初始值的时候,使用此方法会将数据库的初始值覆盖为null,所以数据库有初始值时请使用execute方法l 示例代码:/使用getPersistenceDAO来获得IPer

9、sistenceDAO对象IPersistenceDAO dao = this.getPersistenceDAO;/创建一个新的BO对象,用来执行插入操作LeaveBO bo = new LeaveBO;bo.setId;bo.setName; dao.saveBO;4.2.2. public void saveBOl 说明:a) 批量的对一批BO进行数据库对应表的新增,List中的BO类型可以是不同的,但他们都必须实现IDaoBusinessObject 接口。b) saveBO方法用来批量的执行一组insert语句l 示例代码:/使用getPersistenceDAO来获得IPersis

10、tenceDAO对象IPersistenceDAO dao = this.getPersistenceDAO;/创建10个BO对象,用来进行批量的插入List bos = new ArrayList;for int i = 1; i LeaveBO bo = new LeaveBO; bo.setId; bo.setName; bos.add; dao.saveBO;4.3. 删除操作4.3.1. public void deleteBOl 说明:a) 从数据库中删除该BO所对应的记录,该方法是根据BO的主键来进行匹配删除的b) 该方法部使用hibernate的session进行操作l 示例代码:/使用getPersistenceDAO来获得IPersistenceDAO对象IPersistenceDAO dao = this.getPersistenceDAO;/创建一个新的BO对象,用来执行删除操作LeaveBO bo = new LeaveBO;/*需要注意的是,该方法其实就是根据主键条件进行删除的方法,因此被删除的BO必须要设置主

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号