NHibernate,我们先看BAIDU上的说法:
Hibernate是一个目前应用的最广泛的开放源代码的对象关系映射框架,它对Java的JDBC(类似于ADO.Net)进行了非常轻量级的对象封装,使得程序员可以随心所欲的使用对象编程思维来操纵数据库,目前在国内Java开发界已经颇为流行,Hibernate+Spring往往是很多Java公司招聘的要求。而NHibernate,顾名思义,如同NUnit,NAnt一样,是基于.Net的Hibernate实现,但是目前介绍NHibernate的资料非常少,缺少一个系统完整的教程来全面的展现和深入NHibernate,而且现在NHibernate的文档又残缺不全,少的可怜,很多NHibernate的学习者往往都是通过Hibernate的文档来学习,但是毕竟不是所有的.Net开发者都熟悉Java,也不是所有的人都有精力有时间去学习Java,所以,我准备开始一个Step by Step的NHibernate教程,以便有兴趣的朋友能够快速的熟悉NHibernate,能够更快地体验NHibernate的开发乐趣。
NHibernate 是一个基于.Net 的针对关系型数据库的对象持久化类库。Nhibernate 来源于非常优秀的基于Java的Hibernate 关系型持久化工具。 (以上引用
http://baike.baidu.com/view/954535.htm?fr=ala0
)
NHibernate 从数据库底层来持久化你的.Net 对象到关系型数据库。NHibernate 为你处理这些,远胜于你不得不写SQL去从数据库存取对象。你的代码仅仅和对象关联,NHibernat 自动产生SQL语句,并确保对象提交到正确的表和字段中去。
我不懂Hibernate,我也不懂NHibernate 。从大学出来,我一直用的是LLBLGen这个工具,从网上的介绍来看,两者是差不多的。但是LLBLGen不是开源的,而且还是一个收费的产品。LLBLGen是一个专门针对net 数据库开发的产品。除了Hibernate 开源的优点它没有之外,其它的优点了都有了。
LLBLGen在互联网上,我学的时候网我还真不到中文的教程,只有一些相关的介绍罢了。到我写的这个为止,也没能找到中文教程。或许它的作者出个中文教程,对开开拓中国市场将会有很大的帮助。
我用了两年多的LLBLGen,我只说我的感觉:
1、如果你常用它,你会忘记SQL怎么样写。
2、它把业务逻辑层,表示层,物理存储分得是一目了然。
3、用它写的程序,你一句SQL都不用出现在你的程序上。
4、非常的面向对象,这是当初给我的第一感觉。
说点坏的:
5、当数据量大时,效率明显比ado.net直接写下降很多。
6、复杂一点的SQL想用它来表示,估计你得花很长的时间。如果是ado.net ,那肯定不存在这个问题。
7、对存储过程的效果好像不是很好。你很难将存储过程用它来现到窗体上。
或许我说少了好处,也可能说少了坏处。
它生成的文档,每一个实体作为一个类,类里面的方法是很丰富的,你能想到的,它都有了。
用它的关联来操作数据库,很省事,比如保存任意的一个表,这个表有很多的子表,那么,只要主表save一次,子表也自动跟着搞定了。所有的表的保存,都可以一个方法就可以搞定了。表的操作就简单了,这是ado.net无法相比的。删除也一样。
可以很大程度上减轻工作量。我们还可以修它生成代码的模版,生成我们自己想要的代码。关于大量数据处理的问题,改善的办法还是有的,但是有点麻烦。(完)
下一篇,将介绍如何使用它来生成代码