现代商贸工业 No.5。2O11 Modern Business Trade Industry 2011年第5期 基于NHibernate 和XML通用查询技术研究 杨旭刘长治 ((胜利油田物探研究院,山东东营257022)) 摘要:使用NHibernate作为数据库持久层,充分发挥其在多表映射、数据操作、连接池管理等方面的优势;同时,使 用相当于JDBC和SQL封装的工具来操作数据库,大大减少操作数据库的工作量;使用XML来描述表结构、业务结构以及 业务与实际数据库的的关联,来解决系统的可扩展性和易移植性。采用SOA(面向服务)思想来设计系统的层次架构,使系 统可以快速集成到不同的平台。 关键词:通用查询;NHibernate;XML;SOA 中图分类号:TP 文献标识码:A 文章编号:1672—3198(2011)05-'0255—02 1 引言 及三级单位的项目库。其中勘探库全面反映油田4O多年 目前油田的数据库建设已经初具规模,建设数字油田 来勘探生产成果,包括物探、录井、测井、试油、分析化验、储 的理念正在深入人心,要做到数字油田就需要将油田目前 量、综合研究等数据。共计数据表331个,视图53个,数据 所有的数据都能够进行展示,因此基于数据库的通用查询 项10542个,数据记录数18512146项,日增记录数15811 成为油田必不可少系统功能之一。 条。开发库、项目库的数据表相对少,但是数据项也是海量 2现状分析 的。因此,胜利油田大型数据库的特点是:数据库软件使用 目前胜利油田的大型数据库主要有勘探库、开发库以 不同(主要有oracle、SQLServer、MySql等);数据表、视图比 表2正态检验结果 表4物流与在线顾客满意度的相关分析结果 Tests of Normality Correlations KOIMOgorov-Smirnov Shapiro-Wilk 物流综合评分 满意度评分 Statistie df slg・ statlstlc dt sl● g 物流综合评分Pearson Correlatior 1 .765 网页设计综全评分 .196 22 .028 .936 22 .1 62 Sig.(2一tailed) ● .00(3 物流综合评分 .174 22 .081 .934 2Z .146 N 22 22 满意度评分 .160 22 .147 .939 22 .185 精意度评分Pearson Correlatior .765 1 a.Lilliefors Significance Correction Sig.(2一tailed) .000 ● 根据正态检验得出的数据,网页设计的显著性水平为 N 22 22 0.028,小于0.05;物流和满意度的显著性水平分别为0.081 Correlation is significant at the 0.01 level(2一tailed) 和0.147,均大于0.05,说明,网页设计不满足正态分布,应 5基本结论与启示 该采用spearman的分析方法,而物流和满意度均满足正态 5.1实验结论 分布,应采用pearson的分析方法。 以上分析结果表明: . 4.3相关分析 (1)网页设计与在线顾客满意度显著性相关,亦即网页 根据相关分析结果如下面的表3、表4所示: 设计的优化,可以相应的提高在线顾客的满意度。 表3网页设计与在线顾客满意度的相关分析结果 (2)物流与在线顾客的满意度显著性相关,亦即提高物 Correlations 流配送服务,突出在线商城诚挚快捷的物流配送优势,将相 网页设计 满意度 应的提高在线顾客的满意度。 综合评分 评分 5.2启示 Spearman S rho 嘲贝设计 Correlation Coeffcient 1.000 .567** 综合评分 sig,(2一tailed) ● 今天,许多采用传统营销手段经营的企业也着手拓展 .006 N 22 22 在线经营。而起家于网上商城的企业面临着越来越大的威 满意度 Cottrelation Coefficient .567* 1.000 胁。卓越网的发展很大一部分原因是购物的便捷性,而在 评分 sig.(2一tailed) .O06 ● 物流配送方面应提高服务,才能够促进卓越网今后的发展。 N 22 22 在网页设计方面,美观便捷的设计能让初次的消费者快捷 **.Correlation is significant at the.01 level(2一tailed). 的定位到所需商品,同时也能吸引更多的回头客,让消费者 从表3可以看到,网页设计和满意度的相关系数为0. 在舒适的购物环境中,享受着网上购物的乐趣。 006小于0.05,接受原假设H1,即网页设计与在线顾客满 参考文献 意度为显著性相关。 [1]菲力普・科特勒.营销管理——分析、计划、执行和控州[M].上 从表4中可以看到,物流与满意度的相关系数为0,小 海:上海人民出版社,1997. 于0.05,接受原假设H2即物流与在线顾客满意度也为显 [z]路易斯・E・布恩,大卫・L・库尔茨.网络时代的市场营销[M]. 著性相关。 北京:机械工业出版社,1999. 作者简介:杨旭(1981一),男,本科,工程师,研究方向:面向数据库的软件开发。 No.5,2011 现代商贸工业 Modern Business Trade Industry 2011年第5期 较多;数据量大。 的配置。NHibernate连接配置支持的数据库主要包括: Server和Oracle。 以往的针对特定数据项的查询系统一般采用ADO. MySql、SqlNHibernate在访问数据前要先建立连接。按照以下步 NET、ODBC直连的方式。采用这种方式的数据访问,访问 效率高,代码通俗简单,但是软件与数据库的绑定比较紧 骤来进行: (1)初始化Configuration,Configuration config=new 密,数据库的变化都需要系统进行一次系统更新,这些变化 包括数据库连接的变化、数据表字段的变化、表逻辑关系的 Configuration(); 变化等等。这种系统设计与数据表访问量少、业务字段固 (2)配置Configuration对象; 定的小型应用系统能较好的满足要求,然而,如果是面对大 供针对多数据表连接、大数据访问量、易移植性、易扩充性 (3)获取ISessionFactory对象ISessi0nFactory session~ (4)开始一个会话ISession session=sessi0nFactory. g.BuildSessionFact0ry(); 型的数据库访问系统就显得非常笨拙。因此,需要能够提 Factory=confi的解决方案。 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,事先需要先由SessionFacto- ry创建Session),告知NHibernate需要进行的持久化请求; NHibernate根据配置文件(XML Mapping和app.eonfig)把 持久化操作转化为相应的数据库操作,调用相应的ADO. Net API执行数据库操作。 NHibernate中的实体类和映射文件是面向对象设计与 关系型数据库的桥梁,系统是通过它们对面向对象和关系 型数据库进行解耦。实体类和映射文件一般采用代码生成 器来生成,这里我们使用了MyGerneration。考虑到NHi— bernate对实体类的类型和映射文件有特殊的要求,在My— Gerneration提供的NHibernate类型代码中需要进行一定 的修改,才能满足真正的需要。 4.2 NHibernate配置文件和实际操作 NHibernate的描述文件可以是一个properties属性文 件,也可以是一个xml文件。在Hibernate.efg.xml中既可 以配置JDBC,也可以配置JNDI。Hibernate的配置文件可 以进行c3p0连接池、proxool连接池、dbcp连接池等连接池 0penSession(); (5)使用提供的Find、CreateQuery、CreateSQLQuery、 CreateCriteria、Update、Delete等方法进行数据操作。 5基于XML的业务模型 Xml是一个基于文本的格式,使用类似于HTML的标 记来结构化数据。Xml具有开放性、简单性、自我描述性、 互操作性、可扩展性等优势。使用XML描述业务与数据库 之间的关联,可以最大限度的的减少数据库的变化对于系 统带来的改动。 本系统要求数据按照数据库、业务逻辑两条主线来组 织数据,因此采用XMI来描述数据的组织以及数据表的字 段定制。如下XML所示,为数据组织方式的简单示意: <生产管理> <地震队日报数据表TableName=“test01”></地震 队日报数据表> <地震队周报原始数据表TableName=“test02”></ 地震队周报原始数据表> </生产管理>。 6系统设计 基于SOA思想,将系统的每层都作为服务为上层提供 服务,系统架构总共分三层:底层数据库:该层主要是指各 类数据库。数据服务层:该层由两部分组成,其中NHiber- nate层主要由NHibernate的框架组成,完成数据库到实体 对象的映射,以及使用NHibernate进行数据的连接和数据 查询。其上还有DataService接口层,该层依托业务实体 XML文件完成从简单的实体对象到业务对象的映射,为数 据应用层提供业务数据。应用界面层:该层只提供软件的 实际展示,采用Weifenluo的Winfrom组件,来更灵活的管 理UI界面。 7 结束语 ’ 系统依托NHibernate数据持久层和Weifenluo软件UI 设计组件,以XMI 描述业务逻辑和数据库字段的定制,使 得系统以更符合SOA思想的结构出现,系统具备了更好的 易开发性、易扩展性和易移植性。 参考文献 Ix]Stewart Fraser,Steven Livingstone.C#XML入门经典[M].北 京:清华大学出版社.2003. [z]Eric Freeman,Elisabeth Freeman,Kathy Sierra,Bert Bates.Head First设计模式C#版[M].北京:中国电力出版社,2007. [33 Pirrre Henri Kuate,Tobin Harris,Christian Bauer,Gavin King. Hibernate in Action[M].MANNING.2009.