`

NHibernate体系

    博客分类:
  • .net
阅读更多

 

面向对象的数据库开 发框架NHibernate

 

近年来,越来越多的人认识到使用面向对象的企业应用开发框架来进行系统的开发有着诸多的好处。在项目设计阶 段,使用UML建模语言设计业务域对象模型,从模型出发,定义业务域对象,运行时对业务域对象的属性进行操作,直接将业务域对象保存到数据库,或者从数据 库加载,消除对面向数据集的Sql的依赖,这就是通常所说的OR Mapping,对象-关系映射方法。

在Java平台上,OR Mapping的开源框架的No.1就是Hibernate,Hibernate是一个轻量级的OR Mapping解决方案,一经推出就取得了巨大的成功,在刚刚发布的EJB3.0的草案中就吸收了大量的Hibernate中的特性。从2004年三月开 始,SourceForge上发布了.Net版本的NHibernate的Alpha版本,目前NHibernate的开发进展非常顺利,平均每一个半月 就会发布一个新的版本。

NHibernate具有以下特性:

对象持续性:能够管理.Net类到数据库表的映射,以对象的方式存取数据,支持复杂对象、复合对象,支持对象之 间的关联,比如继承,聚合,关联。OR Mapping的定义都是基于XML,具有很好的扩展性和通用性。可以支持现有的数据库定义,很好地保护用户投资。

支持对象查询:提供了面向对象的查询语言(HQL和条件查询),可以根据条件查询复合对象以及对象集合。

支持事务:创建还必须支持悲观锁的事务,并提供了乐观锁的并发支持。

性能优化:允许用户使用定制的Sql来提高查询的性能,提供了多种SQL自动策略开关,使得框架生成的Sql语 句具有非常优化的性能。提供了灵活的Cache缓冲机制,以及延迟加载,批量更新的策略,保证一般应用的性能不会低于相应的数据集应用。

数据库平台无关性:使用OR Mapping技术实现了数据库平台无关性,可以随时切换开发及数据库发布平台,方便移植。


 

NHibernate的体系结构示意图:

 

 

图中的Session对应于应用程序同持久层的一次对话,其中保存有必需的持久化对象的缓存,可以通过标识符查找持久对象。持久层同底层数据库之间的操作 是通过ADO.Net来实现的。

 

包的介绍:

NHibernate.dll是核心的程序集

Log4net.dll是日志记录程序集

Iesi.Collections.dll是集合框架的程序集

Castle.DynameicProxy.dll控制反转的程序集 


编码步骤:

第一步:Web.Config/App.Config

第二步: 实体类

第三步:创建使用NHibernate的配置文件

0
0
分享到:
评论

相关推荐

    NHibernate中文文档

    第1章 NHibernate体系结构 1 总览 1 第2章 ISessionFactory配置 2 可编程配置方式 3 获取ISessionFactory 3 用户自行提供ADO.NET连接 3 NHibernate提供ADO.NET连接 3 可选配置属性 4 Logging 6 第3章 持久化类...

    NHibernate参考文档 - 符合.Net习惯的关系数据库持久化

    体系结构来理解NHibernate可以使用的环境。 把这份参考文档作为你学习的主要信息来源。 考虑读一下 Hibernate in Action (http://www.manning.com/bauer/) 或者是NHibernate in Action ...

    NHibernate中文帮助手册API

    体系结构(Architecture)  2.1. 概况(Overview)  2.2. 实例状态  2.3. 上下文相关的(Contextual)Session  3. 配置  3.1. 可编程的配置方式  3.2. 获得ISessionFactory  3.3. 用户自行提供ADO.NET...

    NHibernate

    一个基于三层体系下的的NHiberante例子 附带数据库

    NHibernate从入门到精通系列

    二、NHibernate环境与结构体系 三、第一个NHibernate应用程序 四、持久对象的生命周期(上) 五、持久对象的生命周期(下) 六、基本映射 七、多对一关联映射 八、一对一关联映射 九、一对多关联映射 十、多对多关联映射

    NHibernate中文帮组文档(2008.11月更新)

    2. 体系结构(Architecture) 2.1. 概况(Overview) 2.2. 实例状态 2.3. 上下文相关的(Contextual)Session 3. 配置 3.1. 可编程的配置方式 3.2. 获得ISessionFactory 3.3. 用户自行提供ADO.NET连接 3.4. ...

    NHibernate学习

    我们试图显示更多NHibernate运行时体系结构的细节。 但挺不幸的,NHibernate是比较灵活的并且提供了好几种不同的运行方式。我们展示一下两种极端情况。轻型体系中,应用程序自己提供ADO.NET连接,并且自行管理事务。...

    NHibernate参考文档 2.0.0 chm

    2. 体系结构(Architecture) 2.1. 概况(Overview) 2.2. 实例状态 2.3. 上下文相关的(Contextual)Session 3. 配置 3.1. 可编程的配置方式 3.2. 获得ISessionFactory 3.3. 用户自行提供ADO.NET连接 3.4. ...

    Eai.rar_CSharp 封装_EAI_NHibernate

    该文件是多层体系结构的数据访问层,它使用工厂模式、Adapter模式,封装了NHibernate,提供基本CRUD接口。想利用NHibernate实现ORM的兄弟们,冲啊!

    hibernate_reference中文文档.pdf

    2. 体系结构(Architecture) ..................................................... 27 2.1. 概况(Overview) ...................................................... 27 2.2. 实例状态 ........................

    CodeSmith企业版5.22+中文详细注释三层+抽象工厂模板+许可文件+中文件详细教程.part3

    与其他许多代码生成工具不同,CodeSmith 不要求您订阅特定的应用程序设计或体系结构。使用 CodeSmith,可以生成包括简单的强类型集合和完整应用程序在内的任何东西。 当您生成应用程序时,您经常需要重复完成某些...

    人事工资管理系统源码

    本章概述:本章主要对系统中使用到的主要技术进行了介绍,包括ASP.NET2.0框架结构、工作原理以及特点,NHibernate框架体系结构和ASP.Net AJAX框架。 本系统实现的目标是借助于Internet,使员工工资管理工作中的各个...

    ASP.net(C#)+SQL Server2005智能仓库系统

    6.1.2 体系架构概述 113 6.2 数据库设计 114 6.2.1 总体设计 114 6.2.2 数据模型设计 115 6.3 数据访问层设计 117 6.3.1 成员资格和角色管理 117 6.3.2 NHibernate 118 6.3.3 其他数据访问项目设计 ...

    asp.net知识库

    革新:.NET 2.0的自定义配置文件体系初探 关于如何在ASP.NET 2.0中定制Expression Builders 怎么在ASP.NET 2.0中使用Membership asp.net 2.0-实现数据访问(1) ASP.NET 2.0 新特性 .NET 2.0里使用强类型数据创建...

    《ASP.NET 2.0+SQL Server网络系统开发与实例》源代码下

    6.3.2 NHibernate 118 6.3.3 其他数据访问项目设计 125 6.4 业务逻辑层设计 132 6.5 表示层设计 136 6.5.1 用户管理 136 6.5.2 角色权限管理 142 6.5.3 仓储管理 147 6.5.4 报表管理 149 第7章 ...

    《ASP.NET 2.0+SQL Server网络系统开发与实例》源代码中

    6.3.2 NHibernate 118 6.3.3 其他数据访问项目设计 125 6.4 业务逻辑层设计 132 6.5 表示层设计 136 6.5.1 用户管理 136 6.5.2 角色权限管理 142 6.5.3 仓储管理 147 6.5.4 报表管理 149 第7章 ...

    《ASP.NET 2.0+SQL Server网络系统开发与实例》源代码上

    6.3.2 NHibernate 118 6.3.3 其他数据访问项目设计 125 6.4 业务逻辑层设计 132 6.5 表示层设计 136 6.5.1 用户管理 136 6.5.2 角色权限管理 142 6.5.3 仓储管理 147 6.5.4 报表管理 149 第7章 ...

    ASP.NET设计模式-杨明军译(源码)

    3.1 应用程序体系结构与设计 3.1.1 反模式:智能UI 3.1.2 分离关注点 3.2 小结 第4章 业务逻辑层:组织 4.1 理解业务组织模式 4.1.1 Transaction Script 4.1.2 Active Record 4.1.3 Domain Model 4.1.4 ...

    LazyEntityGraph:LazyEntityGraph是.NET的开源库,可让您通过延迟生成关系属性来生成具有循环依赖关系的对象图,例如在ORM中找到的对象图-Lazy source

    可扩展的体系结构:可通过扩展获得AutoFixture和Entity Framework集成; 类似地,可以为NHibernate,ObjectHydrator等创建扩展 约束关系:指定实体之间的一对一,一对多或多对多关系,并且生成过程将尊重这些关系 ...

Global site tag (gtag.js) - Google Analytics