Nhibernate与Ibatisnet开发分析

 

使用Ibatisnet开始已经有一段时间了,最近刚研究了一下Nhibernate2.0的开发。

 

现将想分析一会我对这两种数据持久层框架使用的心得。

 

1.从框架的整体而言,二者是非常相近的。如果你学会了其中一种框架,再去学习其它框架就会容易很多。(ORM)

 

2.从二者对数据库的增删改查操作来说,都很灵活。

 

  IBatisent :采用动态查询语言,对于多条件组合查询来说是非常方便的,如果也要熟悉SQL语句。

 

  Nhibernate:有三种方式,(1)Criteria 方式 (2)HQL方式  (3)原生态的SQL方式

 

  二者比较各有千秋,根据不同的项目可以使用不同的框架。ibatisnet的可定制性更强一些。

 

3.对数据库的要求方面来说:

 

  NHibernate对数据库的要求更严格一些,主外键的关系等等。

 

  对于从表的外键来说,要想实现联动删除,要注意将数据表中外键的“删除规则”,定位“层叠”方式,强制用于外键约束,

 

  强制用于复制。

 

NHibernate优点:
1.完全的ORM框架。
NHibernate对数据库结构提供了较为完整的封装,它将数据库模式映射为较完全的对象模型,支持封装,继续机制,功能较强大,比一般的ORM灵活性高。
开发人员可以完全按照对象模型操纵数据库。
2.代码自动生成,减少代码和sql的开发量,使开发人员摆脱开sql,ado.net和事务,缓存等底层。
NHibernate的O/R Mapping实现了PO 和数据库表之间的映射,以及SQL 的自动生成和执行。程序员往往只需定义好了PO 到数据库表的映射关系,即可通过NHibernate提供的方法完成持久层操作。程序员甚至不需要对SQL 的熟练把握, NHibernate 会根据制定的存储逻辑,自动生成对应的SQL 并调用ADO.NET接口加以执行。NHibernate有工具可以直接根据数据库模式生成po类,或者通过在代码中添加Attribute属性自动生成配置文件。
这些都减少了开发工作量。
3.较好的文档支持。
NHibernate的代码可读性和文档都比较好。

缺点:
1.较复杂,学习曲线大。
2.对数据库模式有较高的要求。NHibernate需要数据库有良好的设计和比较完善的约束。
3.不适合统计查询系统。对于多表连查,复杂的sql实现比较复杂,而且有可能需要借助其他方案。
4.需要一些xml配置。

 

 

  今天先这么多吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值