基于XML的数据映射技术

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:amoyzhu
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:本文将Java技术与XML技术进行有机结合,研究了数据库操作中,XML技术映射数据库中表与Java类的方法,通过Java技术动态解析XML映射,为操作数据库建立对象查询语句,并应用Java技术对对象查询语句转换为标准SQL语句提出了新的实现方法。
  关键词:XML映射;对象查询;动态解析
  中图分类号:TP311文献标识码:A 文章编号:1009-3044(2007)05-11273-01
  XML(eXtensible Markup Language)是可扩展标记语言。与静态网站编辑的HTML语言一样是从SGML(Standard Generalized Markup Language)派生出来的,因此XML也是一种元语言,一个定义Web应用的SGML的子集,和SGML一样,可以用XML来定义各种不同的标记语言以满足不同需要,尤其是数据方面,XML语言有着绝对优势。
  笔者结合Java技术,研究了XML技术映射数据库中表与Java类的实现方法,提出了对象查询语句的构建思想,并通过把对象查询语句转换为标准SQL语句给出了实现方法。
  
  1 设计思路
  以XML语言作为定义结构的基本语言,把Java中定义的类与数据库中定义的表结构一一对应起来,如下图所示:
  图中Student就是一个Java类,类中定义了属性,并且为每个属性提供了set/get方法,以方便外部程序对属性的存取。STUDENT_TAB是一个数据库中的表结构,其中定义了学生的基本信息,从图中可以看出Java类中的属性与表中的字段是一一对应的。其对应关系被定义在XML文件中。
  
  2 基本实现
  (1)定义XML映射文件
  该XML文件主要用以定义对应关系,即Java类中属性与数据表中的字段的对应关系,为了能够确切的描述对应关系,需要自定义几个标签,如下:
  table标签表明一个表的开始,其中包含了一个name属性指明被映射表的名称,也包含了一个class属性指明了被映射的Java类名称。在table下有一个primary-key标签表明了表中的主键,同时还有若干个mapping标签具体的指明了字段和属性的对应,field-name是表中的一个字段名称,其中包括了属性isnull表明字段是否可以为NULL,默认字段是可以为NULL,属性type表示该字段的数据类型,prop-name是与字段名称对应的Java类中的属性名称,其中的type属性表明类中对应的数据类型。
  (2)解析XML文件
  对于XML文件可以定义一个DTD文件来描述XML文件中能够使用的标签以及标签的属性,这样在解析XML文件时可以按照DTD中定义的标准进行。在定义了Java类以及对应的数据表结构以后,就可以创建一个XML映射文件,对类和表建立对应关系,如果定义了DTD文件,那么创建XML映射文件时,必须依据DTD文件中定义的标签以及标签属性进行XML文件的定义。完成XML文件的定义后,就可以在程序中通过对XML文件的解析,来得到类和表结构的对应关系,从而产生需要的操作。XML文件的解析可以通过Java中提供的DOM API来实现。
  (3)动态解析Java类
  通过Java中Reflection技术可以动态的解析一个类,该技术所涉及的类均被包含在java.lang.reflect包中,主要使用的几个类有:
  Field类:对类中的公共属性进行解析
  Method类:对类中的公共方法进行解析
  Proxy类:提供动态地生成代理类和类实例的静态方法。
  在这里,对映射文件中定义的类通过动态加载,并应用XML提供的属性来得到其属性对应的set/get方法,把set/get方法通过Reflection技术中提供的Method类进行动态调用,即可为该类中的属性动态赋值,或者动态获取属性值。
  (4)动态产生数据库操作语句
  对XML文件进行解析后,即可得到表中的字段名称以及表名称,与动态解析后的类对象一起,共同产生标准的数据库操作语句:Insert, Delete, Update。在产生各种数据库操作语句时,需要注意一些细节问题,对于一个Java类对象,应该对应数据表中的一条记录。也就是说数据表中一条记录中的所有字段,都必须在对象中有相应的属性出现,反之则不用这么做,只要把握这个原则,在产生数据库操作语句时就会非常容易。对于Insert语句可以通过以下几个步骤完成:
  解析XML后通过表字段产生Insert语句的前端:Insert into 表名 (字段列表) values ()
  通过对Java对象的动态解析即可获取字段的对应值,把对应值填写在Values关键字的后面括号中,但必须与字段对应
  对于Delete语句和Update语句产生的方法是相同的,唯一的不同就是带有了条件语句where子句。
  (5)产生Select语句
  对于Select语句,必须将其作为单独的一个功能进行处理,因为查询往往分为单条记录查询和多条记录查询。对于单条记录查询的Select语句,只要通过一个带有主键的Java类对象,就像产生Insert,Delete,Update语句一样容易
  然而,对于多条记录查询的Select语句,因为这种语句带有不同的查询条件,所以必须列为单独的一个功能进行考虑,这里可以给出两种解决方案:通过直接提供SQL条件语句的方式,这种方式不能够达到完全封装数据库操作的效果;通过使用Java对象建立自己的查询语句,如查询所有姓李的学生,其对象查询条件可以是:From Student Where stu_name like ‘李%’,把这个对象查询语句提交给数据库操作类后,需要有一个对对象查询类进行解析的类,其作用就是将对象查询语句解析为标准的数据库查询语句,这种方式可以达到完全封装数据库操作的目的。
  (6)对象查询解析类的基本思路
  对象查询语句的解析,首先需要自定义出查询语句的关键字,以及必要的查询语句格式,最简单的方式就是使用标准SQL语句的关键字作为对象查询的关键字,这样对查询语句的解析带来方便,使得解析对象查询语句变得非常简单。这里需要注意,对象查询语句中不需要提供Select关键字,只需要从From子句开始就可以了,这是因为对象查询语句始终查询的是一条记录的所有字段内容,也就是说查询的是完整的一个对象。
  对象查询语句的格式定义:
  From 类名 where 条件
  其解析步骤描述如下:
  提取查询的类名以及查询所依赖的条件
  获取XML文件的解析结果
  从XML的解析结果中,依据类名查找其对应的数据库表名称
  检索条件,将对象的属性提取出来
  从XML的解析结果中获取对应表的字段
  把条件中属性所对应的表字段提取出来
  对条件语句进行替换,把属性替换为对应的表字段,其条件值保持不变化
  根据以上操作结果将查询语句按照标准SQL语句格式进行重新组合
  
  3 结论
  XML数据映射技术对数据库中表与Java类的映射以及数据库的封装操作具有较高的操作安全性,对于那些不必要的操作,必须通过封装后的相关映射来访问,在前段的程序是无法直接访问的,这样大大提高了数据库的安全性。另一方面,该技术不但能够提高数据库的安全性,而且大大简化了数据访问的操作程序,提高了项目的开发效率。而该技术对环境要求比较简单,只要能够运行Java、XML便能应用,因此,从目前数据库技术的发展来看,XML的数据映射技术具有极大的使用价值以及广泛的应用领域。
  参考文献:
  [1]肖刚.Java Web服务器应用程序设计[M].电子工业出版社,2001.
  [2]孙鑫.Java Web开发详解:XML+XSLT+Servlet+JSP深入剖析与实例应用[M].电子工业出版社,2006.
  [3]吴洁.XML应用教程[M].清华大学出版社,2005.
  本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
其他文献
摘要:本文阐述了基于WEB数据库的考务管理系统及其软、硬件环境的构建。  关键词:WEB数据库;Webservice;考务管理  中图分类号:TP311 文献标识码:A文章编号:1009-3044(2007)05-11235-01    1 引言  目前各级考试管理机构主要使用基于C/S(客户机/服务器)模式的考务考籍管理系统进行相关考试的管理工作。这些系统一般运行在单机或若干台机器组成的局域网中
期刊
摘要:本文以著名的开源网络入侵检测系统Snort为基础,通过跟踪国内外网络入侵检测系统的研究动向和Snort的研究热点,在对Snort源代码进行分析的基础上,提出Snort系统在IPv4向IPv6过渡阶段的相应改造方案。通过构造IPv6检测规则,添加IPv6解码模块,IPv6分段重组, IPv6快速检测算法以及对过渡技术的支持,实现了一套同时支持IPv4 、IPv6和过渡技术的入侵检测系统。  关
期刊
摘要:在研究软构件理论的基础上,将构件技术引入MIS系统的开发,提出了一种基于软构件的MIS系统开发模型,采用PowerBuilder实现了该模型,并在多个MIS系统中得到有效应用。  关键词:软构件;MIS;PowerBuilder  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)05-11187-02    1 引言  在管理信息系统MIS的开发过程中,经常遇到这
期刊
摘要:本文主要介绍了PKI技术以及在电子商务中的应用,并在文章最后介绍了一个系统的设计。  关键词:PKI;电子商务;系统  中图分类号:TP249文献标识码:A文章编号:1009-3044(2007)05-11251-02    1 电子商务及其PKI技术概述  1.1 背景分析  随着Internet和计算机网络技术的蓬勃发展,人类正在进入以网络为主的信息时代,传统的贸易正在向电子商务发展。目
期刊
摘要:贪食蛇游戏是款简单有趣的游戏。此文以Authorware7.0为开发工具,介绍了如何利用Authorware7.0中的函数变量实现贪食蛇游戏,涉及到界面设计、事件响应、时间限制以及声音设置等。  关键词:贪食蛇游戏;Authorware;函数;变量  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)05-11288-02    1 系统设计  1.1 本系统功能 
期刊
摘要:通过分析电子病历数据来源,针对数据来源的多样性,利用XML可以对不同应用甚至是差异很大的应用间的数据进行描述的优点,设计出基于XML的电子病历集成框架,将来源于不同应用系统的病历数据转换为XML文档以实现数据的共享与交换。  关键词:电子病历;CPR;XML;信息集成  中图分类号:TP312文献标识码:A 文章编号:1009-3044(2007)05-11277-02    1 引言  医
期刊
摘要:AutoCAD在工程界得到了广泛的应用,学习和掌握AutoCAD也逐渐地成为工程设计人员必备的技能之一。本文主要介绍AutoCAD软件的一些辅助命令及绘图技巧,提高工程制图的效率,促进工程界的甩图板进程。  关键词:CAD;AutoCAD;绘图技巧;模板文件  中图分类号:TP391文献标识码:A文章编号:1009-3044(2007)05-11286-02    1 引言  计算机辅助设计
期刊
摘要:网络应用正从面向对象的架构向面向服务的架构方向转变,基于Web服务架构的开发模型顺应了从组件复用向服务复用转变这一未来软件发展的新趋势。本文以服务技术的发展应用为基础,探讨了.NET环境下的web服务开发,提出了基本实现思路。  关键词:Web服务;ASP.NET;.NET框架  中图分类号:TP311 文献标识码:A文章编号:1009-3044(2007)05-11262-02    1
期刊
摘要:本文就Internet蠕虫的传播模型进行了研究,分析了各种传播模型的特点和适用环境,在此基础上结合良性蠕虫的特点提出了良性蠕虫对抗恶性蠕虫的传播模型。经过比较和分析,理论上证明了蠕虫对抗蠕虫传播模型,有效地补充和改进了传统的Internet蠕虫传播模型,使其更符合Internet蠕虫传播的实际,为进一步研究蠕虫的检测与预防提供了有力的研究方法。与现有模型相比,其降低了对抗蠕虫给网络造成的冲击
期刊
摘要:构建房地产管理系统虚拟专用网是房地产管理部门信息化网络化的重要组成。IPsec VPN和SSL VPN是两种主流的VPN技术,各有优势和不足。通过对二者的对比分析和对实际需求的调查,研究探讨两种主流技术在VPN中的应用,这对于构建一个既符合实际要求又有扩展空间,并且性价比较高的VPN具有参考价值。  关键词:VPN;Ipsec;SSL;房地产管理  中图分类号:TP393.2文献标示码:A
期刊