基于NHibernate与XML通用查询技术研究.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于NHibernate与XML通用查询技术研究

基于NHibernate与XML通用查询技术研究   作者简介:杨旭(1981-),男,本科,工程师,研究方向:面向数据库的软件开发。   摘要:使用NHibernate作为数据库持久层,充分发挥其在多表映射、数据操作、连接池管理等方面的优势;同时,使用相当于JDBC和SQL封装的工具来操作数据库,大大减少操作数据库的工作量;使用XML来描述表结构、业务结构以及业务与实际数据库的的关联,来解决系统的可扩展性和易移植性。采用SOA(面向服务)思想来设计系统的层次架构,使系统可以快速集成到不同的平台。   关键词:通用查询;NHibernate;XML;SOA   中图分类号:TP 文献标识码:A文章编号:1672-3198(2011)05-0255-02   1 引言   目前油田的数据库建设已经初具规模,建设数字油田的理念正在深入人心,要做到数字油田就需要将油田目前所有的数据都能够进行展示,因此基于数据库的通用查询成为油田必不可少系统功能之一。   2 现状分析   目前胜利油田的大型数据库主要有勘探库、开发库以及三级单位的项目库。其中勘探库全面反映油田40多年来勘探生产成果,包括物探、录井、测井、试油、分析化验、储量、综合研究等数据。共计数据表331个,视图53个,数据项10542个,数据记录,日增记录数15811条。开发库、项目库的数据表相对少,但是数据项也是海量的。因此,胜利油田大型数据库的特点是:数据库软件使用不同(主要有oracle、SQLServer、MySql等);数据表、视图比较多;数据量大。   以往的针对特定数据项的查询系统一般采用ADO.NET、ODBC直连的方式。采用这种方式的数据访问,访问效率高,代码通俗简单,但是软件与数据库的绑定比较紧密,数据库的变化都需要系统进行一次系统更新,这些变化包括数据库连接的变化、数据表字段的变化、表逻辑关系的变化等等。这种系统设计与数据表访问量少、业务字段固定的小型应用系统能较好的满足要求,然而,如果是面对大型的数据库访问系统就显得非常笨拙。因此,需要能够提供针对多数据表连接、大数据访问量、易移植性、易扩充性的解决方案。   3 功能设计   通用查询系统需要包含的主要功能有:   (1)多数据库同时连接:用户需要访问的数据是面向业务的,而这些业务在数据库中是以不同的数据库进行存放的,因此,系统应该能够同时展示不同数据库的数据。   (2)多种数据组织方式:用户可以按照数据库中物理表和视图的方式查询数据,同时也可以根据自己的业务逻辑来定制组织显示数据,同时,业务逻辑可能分为不同的数据组织方式。   (3)基于主键的快速过滤和查询:任何数据表的查询应该是基于数据库中主键的快速定位以及其他字段的详细查询。   (4)通用查询语句的构建:即使是不懂SQL语句的用户可以通过系统提供的SQL语句构建界面来构建自己需要的SQL语句。   (5)需要考虑系统在未来的可移植性、可扩展性和SOA思想的实施。   4 NHibernate关键技术点   4.1 NHibernate中的实体类和映射文件   NHibernate是一个面向.NET环境的对象/关系数据库映射工具。NHibernate不仅仅管理.NET类到数据库表的映射(包括.NET数据类型到SQL 数据类型的映射),还提供数据查询和获取数据的方法,可以大幅度减少开发时人工使用SQL和ADO.NET处理数据的时间。   NHibernate的基本用法是:在应用程序(Application)中创建的临时对象(Transient objects);接着应用程序和NHibernate进行对话(Session,事先需要先由SessionFactory创建Session),告知NHibernate需要进行的持久化请求;NHibernate根据配置文件(XML Mapping和app.config)把持久化操作转化为相应的数据库操作,调用相应的ADO.Net API执行数据库操作。   NHibernate中的实体类和映射文件是面向对象设计与关系型数据库的桥梁,系统是通过它们对面向对象和关系型数据库进行解耦。实体类和映射文件一般采用代码生成器来生成,这里我们使用了MyGerneration。考虑到NHibernate对实体类的类型和映射文件有特殊的要求,在MyGerneration提供的NHibernate类型代码中需要进行一定的修改,才能满足真正的需要。   4.2 NHibernate配置文件和实际操作   NHibernate的描述文件可以是一个properties属性文件,也可以是一个xml文件。在Hibernate.cfg.xml中既可以配置JDBC,也可以配置JNDI。Hibernate的配置文件可以进行c

文档评论(0)

3471161553 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档