- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
NHibernate代码生成器的设计与实现
摘要:采用代码生成技术能大幅提高软件开发的质量和生产率,降低软件开发的风险。本文将介绍了基于C#的NHibernate代码生成器的设计与实现过程,并分析了常见的代码生成技术,同时结合实例说明核心源代码。
关键词:代码生成器;C#;NHibernate;XML
中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)31-0908-04
Design and Implementation of NHibernate Code Generator
JIANG Shang-ting, LI Wei
(Computer Centor, Anhui Preofessional Scientifical College of News Publishment, Hefei 230601, China)
Abstract: Code technology can be used to generate a substantial increase in the quality of software development and productivity, reduce the risk of software development. This article based on the C# code generation NHibernate Design and Implementation of the process and analysis of the common code generation technology, combined with examples of the core source code.
Key words: code generator; C#; NHibernate; XML
NHibernate是一个面向.NET环境的对象/关系数据库映射工具。NHibernate很好的实现了关系型数据库到面向对象实体的映射,并且提供数据查询和获取数据的方法,从而大幅度减少开发时人工使用SQL和ADO.NET处理数据的时间,提高了效率和安全性。但是在使用NHibernate之前需要手写大量配置文件和POJO类,并且一旦有错误就会导致整个程序的错误,也就提高了整个项目的复杂性。那么,如何才能有效的去完成这项工作?本文将向大家介绍NHibernate的代码生成器的设计与实现,同时大家也可以参考实现其他功能的代码生成器。
1 代码生成器的实现原理
综合大部分的代码生成器,我们不难看出,绝大多数都采用了XML、XSLT技术。其主要原因在于首先XML的国际标准化,其次XML可以表示层次结构有利于设计和实现。而XSLT是一种将XML文档转换为其他文本文档的语言,它是建立在XML和XPath之上的国际标准,功能强大。两者结合可以很容易实现代码生成功能。
考虑到NHibernate是ORM工具,而XML可以很容易的实现数据表的层次结构,同时C#语言中包含了实现对XML和XSLT的操作的类库。所以本文也将采用XML、XSLT技术来实现NHibernate代码生成器。基本的原理如图1所示。
2 代码生成器的设计原理
要实现将关系数据库模型通过代码生成器映射为所需要的代码,首先要将关系数据库模型转换为代码生成器可以读取的文件, 然后代码生成器从这些输入文件中提取出模型中的信息并生成相应的代码。那么在这里我们使用的是XML文档,这样就必须将我们的关系型数据库模型转换为XML文档。为了实现较好的通用性,本代码生成器可以实现ACCESS、MSSQL、ORACLE这三个数据库转换功能。接着我们将使用XSLT作为模板,完成从XML到代码的转换过程。从而实现代码生成器的基本功能。
2.1 数据库模型到XML文档的转换
这里关键是获取数据库的基本信息,包括表、字段、索引、键等,这次都可以通过数据库中的系统表获得,下面给出三个数据中数据库的基本信息获取方法。
对于MSSQLServer,数据库中有SysObjects和SysColumns这两个系统表,我们可以查询系统表来获得所有的表名称和字段名称以及格式,还有一个sp_helpindex 的系统预定义存储过程来获得指定表的字段索引信息。
对于Oracle,数据库有一个名为Col的系统预定义视图,我们可以查询这个视图获得所有的表名和字段定义信息。还有一个 user_ind_columns的系统预定义视图,我们可以关键字段信息。
对于Access2000数据库,没有这些系统表,因此我们使用。NET框架中的OleDB的数据
您可能关注的文档
最近下载
- 水泥厂电气培训课件.pptx
- 体例格式9:工学一体化课程《windows服务器基础配置与局域网组建》任务1学习任务工作页.docx VIP
- 金税四期税务风险预警指标汇总.pdf
- 豆腐柴人工栽培技术.pdf VIP
- 天津市小升初小卷真题小外(天津市外国语大学附属外国语学校)(5套含答 .pdf VIP
- 控制计划(机加).docx VIP
- 土地资源管理学(第二版)张正峰,第一至第十二章知识点.docx VIP
- 专题三 透镜及其应用 2025年中考物理基础知识考点专题练习(含答案).docx VIP
- DL/T 502-2006 火力发电厂水汽分析方法(第1-32部分).pdf VIP
- 施工现场总平面布置培训.pptx VIP
文档评论(0)