NHibernate VS IbatisNet

  NHibernate 是当前最盛行的
Java O/CR-V mapping 框架
Hibernate 的移植版本,当前版本是
一.0 .2 。它出身于
sf.net..IbatisNet 是此外壹种能够的
Java O/福睿斯 mapping 框架,当前版本是
一.二 。方今属于
apache

的叁个子项目了。
相对
NHibernate “
O/R ”而言,
IbatisNet 是一种“
Sql Mapping ”的

ORM实现。
NHibernate 对数据库结构提供了比较完整的卷入,
NHibernate 的
O/讴歌ZDX Mapping 达成了
PO 和数码库表之间的映照,以及
SQL 的自动生成和执行。程序员往往只需定义好了
PO 到多少库表的炫耀关系,即可通过
NHibernate 提供的法子成功持久层操作。程序员甚至不须求对
SQL 的熟习掌握,
NHibernate
会根据相制版定的蕴藏逻辑,自动生成对应的
SQL 并调用
ADO.NET

接口加以实施。 

IbatisNet 的着力点,则在于
PO 与
SQL 之间的炫耀关系。也正是说,
IbatisNet 并不会为程序员在运转期自动生成
SQL 执行。具体的
SQL 须要程序员编写,然后经过炫耀配置文件,将
SQL 所需的参数,以及重回的结果字段映射到内定

PO。
使用
IbatisNet 提供的
O翼虎M 机制,对事情逻辑达成人口而言,面对的是纯粹的
DotNet 对象,那1层与经过
NHibernate 完毕OCR-VM 而言基本1致,而对于现实的数目操作,
NHibernate 会自动生成
SQL 语句,而
IbatisNet 则供给开发者编写具体的
SQL 语句。相对NHibernate 而言,
IbatisNet 以
SQL
开发的工作量和数据库移植性上的妥胁,为系统规划提供了更加大的即兴空间。 

两者的争辨统1: 壹 .   IbatisNet 格外不难易学, NHibernate 相对较复杂,门槛较高。 二 .   贰者都是相比雅观的开源产品 叁 .   当系统属于3回开发 , 不能够对数据库结构形成控制和改动 , 那 IbatisNet 的布帆无恙将比 NHibernate 更适合 4 .   系统数据处理量巨大,质量供给颇为苛刻,那频仍代表大家不能够不经过通过高度优化的 SQL 语句(或存储进程)才能达到系统天性设计目的。在那种意况下 IbatisNet 会有越来越好的可控性和表现。 5 .   IbatisNet 必要手写 sql 语句,也足以生成一部分, NHibernate 则大多能够自动生成,偶尔会写一些 Hql 。同样的须要 ,IbatisNet 的工作量比 NHibernate 要大过多。类似的,假诺涉嫌到数据库字段的改动, NHibernate 修改的地点很少,而 IbatisNet 要把那多少个 sql mapping 的地点相继修改。 陆 .   最要紧的一句话是 IbatisNet 的撰稿人说的: If you are starting a new project and you’re in full control of your object model and database design, NHibernate is a good choice of O/汉兰达 tool. If you are accessing any 3rd party databases (e.g. vendor supplied), or you’re working with a legacy database, or even just a really poorly designed database, then an O/昂科威 mapper might not be capable of handling the situation. That’s were an SQL Mapper comes in handy

各位国庆高兴欢畅!

相关文章