采用iBATIS和数据字典建立数据持久层的方法_第1页
采用iBATIS和数据字典建立数据持久层的方法_第2页
采用iBATIS和数据字典建立数据持久层的方法_第3页
采用iBATIS和数据字典建立数据持久层的方法_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、采用iBATIS和数据字典建立数据持久层的方法摘要:在面向数据库的应用系统开发中,因为数据库模型的改动,会引起业务层和数据库层的大量修改工作。减少因数据库模型改动带来的修改工作量,是软件开发领域急需解决的重要问题,通过对iBATIS和数据字典的研究,提出了在数据库系统开发过程中建立双重持久层,即在数据持久层的基础上,建立数据字典持久层,同时建立关于数据字典的业务层,通过对数据字典的维护,实现对数据库模型和数据持久层的维护。关键字:数据字典;数据持久层;双重持久层Abstract: A large number of workload will be triggered in the busin

2、ess layer and database layer by reason of the database model changes in the Database-oriented application system development. It is an urgent issue for the field of software development to reduce the workload arising from database model changes during the system development. Through the researc

3、h on the iBATIS and data dictionary, establishing doubly persistence layer during the database system development is advanced ,that is, based on data persistence Layer, building data dictionary persistence Layer and building business layer of data dictionary which can effectively reduce the workload

4、 of database management to achieve the maintenance of the database model and data persistence layer .Keywords:Data dictionary;Data persistence layer;Doubly persistence layer1 引言在数据持久层框架引入之前,系统开发过程中采用传统的两层模式,业务功能的开发无法抛开数据库的束缚。如何将复杂的数据持久化并进行方便的查询和操作成为软件开发领域的迫切需求。目前已经存在很多优秀的O/R Mapping组件来解决数据持久化问题,使得传统

5、的两层模式改变为三层甚至多层模式,例如Hibernate和IBATIS持久层框架。在面对业务逻辑稳定、数据库模型变动不频繁的系统中,上述持久层框架无疑是一种非常优秀的解决方案。当在系统开发过程中,需要数据库模型变动时,首先要更改数据库模型,然后是配置文件,接着是持久层框架,最后修改类对象、业务逻辑以及表现层。繁杂的改动为系统开发带来诸多不便。针对如何在数据库模型变动时,减少持久层框架修改工作量的问题,通过对IBATIS和数据字典技术的研究,发现在持久层框架开发过程中,融入数据字典技术,可以有效的减少由于数据库模型变动带来的改动量。2 iBATIS简介iBATIS是一种功能强大的数据访问工具,融

6、合了多种操作关系数据的理念和方法,是一个混合型解决方案(Hybrid Solution)。如图1所示。iBATIS不同于将数据库直接映射为Java对象并完全隐藏SQL的O/RM工具(如Hibernate)。iBATIS的映射层是SQL,不是直接把类映射为数据库表或者说把类的字段映射为数据表列,而是把SQL语句的参数与结果(输入和输出)映射为类。通过SQL映射器(SQL mapper)保证了在对象和数据库之间数据传输时,两者与映射器之间的相对独立性。iBATIS框架并不是一个万能的框架,如果数据库模型发生变动,也需要对映射关系进行改动以适应新的数据库模型。图1iBATIS融合的一些思想13 数据

7、字典简介数据字典是系统设计与编程的标准和依据,是关于数据库中数据的数据库2,3,主要负责操作模式和子模式的内容、文件间的联系、数据项的长度、类型、用户标识符、口令、索引等等非用户数据信息(汪新庆,1999)。为了使数据库的设计、实现、运行、维护、扩充有一个共同遵循的标准和依据,并且也为了保证数据库的共享性、安全性、完整性、一致性、有效性、可恢复性以及可扩充性4,需要在数据库中设置数据字典,来集中保存这些信息(汪新庆,1998)。通过对数据字典技术的运用,不仅可以实现对数据库本身的有效维护和操作,同时也可以为系统开发建立标准和依据。但从本质上将数据字典技术依然采用的是传统的两层模式,是在数据库的

8、基础上建立了一个关于数据库中数据的数据库,并不能真正的实现业务层与数据库层的独立。4 数据持久层设计4.1 iBATIS数据持久层iBATIS是一个持久层框架。持久层位于应用程序的逻辑层和数据库层之间(图2),这种分离保证了持久化策略不会混入业务逻辑代码,反之亦然。在持久层内又可细分为抽象层、持久化框架和驱动程序或接口层,通过上述三层结构来实现数据持久化。持久层框架中的SQLMaps使用XML配置文件将Java Bean映射成SQL语句,允许开发人员在不使用JDBC API以及不耦合Java代码与SQL语句的情况下实现Java对象和DBMS的访问操作5。图2遵循德米特法则的典型分层策略4.2

9、数据字典设计数据字典是关于数据库中数据的数据库,在数据库中承担着管理数据资源、数据标准化以及数据库模型维护等功能。一个完整的数据字典通常应包括数据表字典、属性字段字典、表格字段字典、索引信息字典、约束字典以及方法字典(面向数据表和面向数据项)等,在数据库管理维护中扮演着不同角色。在数据库建模完成后,需要建立数据字典用于描述数据库模型、控制字段输入与输出、用户需要进行的查询检索等。见表1表1基本数据字典数据字典名称包含字段主关键字数据表字典表名;表别名;关键字;父表名;表格有效性规则等表名属性字段字典字段名;字段编码;字段类型;长度;小数位;单位;允许空值;默认值;代码转换;字段有效规则等字段名

10、表格字段字典表名;字段名称;字段编号;是否使用;用户可见性等表名+字段名称索引信息字典表名;索引名;索引表达式等表名+索引名查询检索方法字典检索名;检索编号;数据表名;字段名等检索名4.3 集合iBATIS和数据字典技术的数据持久层设计通过对iBATIS实现数据持久层技术和数据库中基本数据字典作用分析,不难发现这两项技术各有其技术优势:1) iBATIS在数据库模型相对稳定的情况下较好的分离了业务层和数据库层;2) 数据字典描述和记录了数据库模型,通过建立数据字典的业务层,可以方便的实现数据库模型的维护。结合两项技术的优点,可以在数据字典层次上架设数据字典的持久层,即在图2的基础上,增加数据字

11、典持久层,形成双重体系的数据持久层(图3)。在数据持久层上依然采用iBATIS持久层框架,实现对数据库中数据的访问控制;在数据库的数据字典层上架设一个数据字典持久层,并开发一个数据库管理的业务逻辑层,实现数据库模型的修改和维护工作。图3双重持久层体系的分层策略在数据字典持久层中根据不同数据字典配置不同的XML文件,来实现对数据字典的访问与操作。当数据库模型变动时,需要对数据库中相应表或者字段进行更改,同时在数据持久层中根据sqlMaps与XML文件的对应关系,找到对应的XML文件进行更改,保证数据持久层与数据库层的一致性。以数据表字段字典为例,配置GeoTableField.XML文件,伪码如

12、下:<resultMaps><resultMap id="Select-TABLE_FIELD-Result"class=" TABLE_FIELD "><result property="TableName" column=" TableName " /><result property="FieldName" column=" FieldName " /><result property="FieldCPT&

13、quot; column=" FieldCPT " /> </resultMap></resultMaps><statements><!编写对数据表操作的语句-><delete id="TableFiled_Delete" parameterClass=" TABLE_FIELD ">delete from TABLE_FIELD where TableName = # TableName # and FieldName = # FieldName #.</del

14、ete></statements>在iBATIS持久层框架中sqlMaps对应的XML文件主要由两部分构成,即数据映射(Data Map或SQL Map)和数据访问对象(Data Access Object)。对于数据字典而言,表格字段字典对应数据映射,而查询检索字典对应数据访问中的查询功能。通过建立数据表与数据持久层中的XML文件对应关系,可以实现数据表的修改工作。当数据库模型中需要对指定表删除一个字段时,首先应删除表格字段字典中的一行记录,然后删除数据库中指定表的字段,接着在数据持久层中找到该数据表对应的XML文件,对相应字段进行修改。保证数据持久层与数据库层的一致性。在

15、针对数据库管理人员开发的业务层中可以实现数据库维护的基本功能,如对字段的增加、删除等操作。在“数字矿山数据管理系统”中采用双重持久层的分层策略,建立了数据表字典(GeoTables)、属性字段字典(GeoFields)、表格字段字典(Table_Field)和查询检索方法字典(GeoSelect),采用iBATIS建立数据字典持久层,并开发了数据库管理维护系统。通过对数据字典的维护,实现对数据库和数据持久层的维护工作。如图4所示:数据库管理人员可以定制用户对数据表中字段的可见性。图4 设置字段可见性5 结束语通过在数据字典层面上建立数据字典持久层和数据库管理维护业务层,用于维护数据库模型和数据持久层,减少因数据库模型修改带来的持久层修改工作量。该方法建立的数据字典持久层,面对数据库管理员,由数据库管理员操控数据库维护业务层实现数据库模型的修改,使业务层的开发最大限度的脱离数据库的束缚,同时也使数据库管理人员减少对持久性框架维护的工作量。通过实践表明,双重持久层可以实现当数据库模型变动时,对数据库和数据持久层的同步维护。同时,对数据字典建立的持久层以及开发的数据库管理逻辑层具有一定的通用性,可以方便的移植到其他的数据库管理系统中。参考文献:1 Clinton Begin,Brandon Goodin,Larry Meadors。 iBA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论