从java中的hibernate看Ado.net 与NHibernate的关系

本文探讨了ADO.NET与NHibernate的区别,指出二者处于不同层次,NHibernate是对ADO.NET的进一步封装,实现了对象关系映射及自动化的数据映射。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 看了许多人的文章,将Ado.net 与NHibernate看作类似的东西,频繁将两者进行比较。对于那些朋友的观点,我不认同!
  
  我认为ado.net 和 nhibernate是完全不同层次的东西。 他们之间的关系有点类似于:封装了Win32 API调用的拖管对像与该Win32 API本身的关系。  

    我本人对NHibernate没有研究。只是听同事讨论过,对于NHibernate的性能优劣,框架的好坏,我不敢下结论。但这并不影响我对 NHibernate整体的了解。我认为NHibernate是一套实现O/R Mapping的框架之一。 只要它没脱离这个范畴,我认为下面的理解应该是对的。
  
    下面论述一下我心目中的Ado.net与NHibernate的关系,欢迎大家指出缺点,补充我的NHibernate知识。谢谢!

    ado.net是.net平台上的托管的数据访问提供程序 ,是.net程序访问数据库的一个基础组件,绝大部分程序需要访问数据库都使用此组件。当然,你也可以调用Com组使用以前版本的Ado.

而 Nhibernate是一个数据映射的工具,它将数据库表中的数据映射成各种业务对像的形式。 其实我们不用Nhibernate一样可以做到映射,我们 将数据库表中的字段组合成一个类就行了。只是Nhibernate可以实现自动化,有一个良好的框架,有良好的对像缓存机制。

ado.net 与NHibernate的关系:

ado.net提供数据访问的底层功能,而NHibernate是在Ado.net之上提供将数据封装成对像的一个框架。 换句话说:  NHibernate同样是使用Ado.net来访问数据库的。 所以,Nhibernate与Ado.net的关系可以认为是: 调用和被调用的关系。
所以,“我使用了Nhibernate,代替了Ado.net”;, 是不准确的, 拿ado.net 与Nhibernate对比也是不恰当的。 两者跟本不是一回事。 就好比有人拿微软的DataAccess Application Block 与Ado.net对比而得出 DataAccess Application Block 比Ado.net更好一样搞笑。 实际上,它只是对于Ado.net的再一次封装。是在Ado.net上面再加一层,使用NHibernate实际上就是通过NHibernate间际使用 Ado.net. 所有与Ado.net打交道的事情全部由NHibernate代劳了。

所以如果按以下方式定义Nhibernate的话,我表示认同:

Nhibernate是采用面向对的方式对Ado.net数据访问进行了进一步的封装,通过隐藏Ado.net调用的细节,隐藏了Sql和数库库表的操 作。实现了数据库表与业务对像的自动映射,并提供了数据对像缓存和各种事件机制。 有效解决了我们人工进行数据库和业务对像映射时的 代码量大的问题。缓存功能缓解了数据库映射所带来的性能问题。 让我们能够以比较小的代价实现更好的面向对像的数据库程序开发。 (转载于博客园另一位高手)
NHibernate 之旅(1):开篇有益.............................................................................................5 NHibernate 开篇有益 ................................................................................................5 NHibernate 是什么 ....................................................................................................5 NHibernate 的架构 ....................................................................................................6 NHibernate 资源 ........................................................................................................7 欢迎加入 NHibernate 中文社区 ...............................................................................7 NHibernate 之旅(2):第一个 NHibernate 程序..............................................................8 开始使用 NHibernate ................................................................................................8 1.获取 NHibernate ....................................................................................................9 2.建立数据库..............................................................................................................9 3.创建 C#类库项目 .....................................................................................................10 4.编写 DomainModel 层 ........................................................................................11 5.编写数据访问层 ........................................................................................................13 6.编写数据访问层的测试 ............................................................................................15 结语.................................................................................................................................17 NHibernate 之旅(3):探索查询之 NHibernate 查询语言(HQL)..............................17 NHibernate 中的查询方法 ......................................................................................18 NHibernate 查询语言(HQL).................................................................................18 实例分析.........................................................................................................................22 结语.................................................................................................................................23 NHibernate 之旅(4):探索查询之条件查询(Criteria Query) ...................................24 NHibernate 中的查询方法 ......................................................................................24 条件查询(Criteria Query).....................................................................................24 根据示例查询(Query By Example) ...................................................................26 实例分析.........................................................................................................................27 结语.................................................................................................................................28 NHibernate 之旅(5):探索 Insert, Update, Delete 操作 .......................................28 操作数据概述.................................................................................................................28 1.新建对象 ....................................................................................................................29 2.删除对象 ....................................................................................................................29 3.更新对象 ....................................................................................................................30 4.保存更新对象 ............................................................................................................31 结语.................................................................................................................................32 NHibernate 之旅(6):探索 NHibernate 中的事务........................................................32 事务概述.........................................................................................................................33 1.新建对象 ....................................................................................................................34 2.删除对象 ....................................................................................................................37 3.更新对象 ....................................................................................................................37 4.保存更新对象 ............................................................................................................38 结语.................................................................................................................................39 NHibernate 之旅(7):初探 NHibernate 中的并发控制................................................39 什么是并发控制?.........................................................................................................39 悲观并发控制(Pessimistic Concurrency) ......................................................40 乐观并发控制(Optimistic Concurrency) ........................................................40 NHibernate 支持乐观并发控制 ..............................................................................40 实例分析.........................................................................................................................41 结语.................................................................................................................................44 NHibernate 之旅(8):巧用组件之依赖对象.......................................................................44 引入.................................................................................................................................45 方案 1:直接添加.........................................................................................................45 方案 2:巧用组件.........................................................................................................45 实例分析.........................................................................................................................46 结语.................................................................................................................................50 NHibernate 之旅(9):探索父子关系(一对多关系)...........................................................50 引入.................................................................................................................................50 NHibernate 中的集合类型 ......................................................................................51 建立父子关系.................................................................................................................51 父子关联映射.................................................................................................................53 结语.................................................................................................................................57 NHibernate 之旅(10):探索父子(一对多)关联查询........................................................57 关联查询引入.................................................................................................................58 一对多关联查询.............................................................................................................58 结语.................................................................................................................................62 NHibernate 之旅(11):探索多对多关系及其关联查询 ....................................................62 多对多关系引入.............................................................................................................63 多对多映射关系.............................................................................................................64 多对多关联查询.............................................................................................................66 结语.................................................................................................................................69 NHibernate 之旅(12):初探延迟加载机制 ........................................................................70 引入.................................................................................................................................70 延迟加载(Lazy Loading) .......................................................................................71 实例分析.........................................................................................................................72 1.一对多关系实例 ........................................................................................................72 2.多对多关系实例 ........................................................................................................74 结语.................................................................................................................................78 NHibernate 之旅(13):初探立即加载机制 ........................................................................78 引入.................................................................................................................................78 立即加载.........................................................................................................................79 实例分析.........................................................................................................................79 1.一对多关系实例 ........................................................................................................79 2.多对多关系实例 ........................................................................................................82 结语.................................................................................................................................86 NHibernate 之旅(14):探索 NHibernate 中使用视图.................................................86 引入.................................................................................................................................87 1.持久化类 ....................................................................................................................87 2.映射文件 ....................................................................................................................88 3.测试 ............................................................................................................................89 结语.................................................................................................................................90 NHibernate 之旅(15):探索 NHibernate 中使用存储过程(上) ................................90 引入.................................................................................................................................90 使用 MyGeneration 生成存储过程........................................................................90 实例分析.........................................................................................................................94 结语.................................................................................................................................97 NHibernate 之旅(16):探索 NHibernate 中使用存储过程(中) ................................97 引入.................................................................................................................................97 实例分析.........................................................................................................................97 结语...............................................................................................................................102 NHibernate 之旅(17):探索 NHibernate 中使用存储过程(下) ..............................102 引入...............................................................................................................................103 实例分析.......................................................................................................................103 拾遗...............................................................................................................................107 结语...............................................................................................................................108 NHibernate 之旅(18):初探代码生成工具使用 ..............................................................108 引入...............................................................................................................................108 代码生成工具...............................................................................................................109 结语...............................................................................................................................117 NHibernate 之旅(19):初探 SchemaExport 工具使用............................................117 引入...............................................................................................................................118 SchemaExport 工具 .............................................................................................118 SchemaUpdate 工具 ............................................................................................119 实例分析.......................................................................................................................119 结语...............................................................................................................................124 NHibernate 之旅(20):再探 SchemaExport 工具使用............................................124 引入...............................................................................................................................125 实例分析.......................................................................................................................125 1.表及其约束 ..............................................................................................................125 2.存储过程、视图 ......................................................................................................130 结语...............................................................................................................................132 NHibernate 之旅(21):探索对象状态 ..............................................................................132 引入...............................................................................................................................132 对象状态.......................................................................................................................133 对象状态转换...............................................................................................................133 结语...............................................................................................................................137 NHibernate 之旅(22):探索 NHibernate 一级缓存...................................................137 引入...............................................................................................................................137 NHibernate 一级缓存介绍 ....................................................................................137 NHibernate 一级缓存管理 ....................................................................................141 结语...............................................................................................................................142 NHibernate 之旅(23):探索 NHibernate 二级缓存(上) ..........................................142 引入...............................................................................................................................143 介绍 NHibernate 二级缓存 ...................................................................................143 NHibernate 二级缓存提供程序 ............................................................................143 实现 NHibernate 二级缓存 ...................................................................................144 结语...............................................................................................................................149 NHibernate 之旅(24):探索 NHibernate 二级缓存(下) ..........................................149 引入...............................................................................................................................149 使用 NHibernate 二级缓存 ...................................................................................150 启用缓存查询...............................................................................................................151 管理 NHibernate 二级缓存 ...................................................................................154 结语...............................................................................................................................158
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值