Profil de Feeling路漫漫其修远兮,吾将上下而求索PhotosBlogListes Outils Aide

Blog


12/03/2006

iBatis and Hibernate

iBatis 和 Hibernate 是目前最流行的2种O/R框架,但是两者差别也很大。由于某些原因,我必须学习Hibernate。其实这两种工具我觉得有一种就可以畅行无阻,实无两者都学习的道理。但是Java社区偏偏喜欢重复发明轮子,人在江湖,身不由己呀,想不学都难。

 

初期的时候,我并无采用任何框架的习惯,喜欢用自己的一套O/R工具,其实用自己的工具也无可厚非,但是使用一套成熟的框架有一个极为令人诱惑的附加效果:稳定性。既然称之为成熟的框架,那么就必然是健壮、应用的。于是我开始接触iBatis和Hibernate,总体而言iBatis比Hibernate更容易上手的多,它就是简单的SQL Mapping,没有面向对象形式的继承,仅仅就是把一张表映射到一个POJO上,一个平面的体系,很容易构造。一个查询对应一个自己手工编写的SQL,相当灵活,完全由自己控制。我想很适合那些自己设计表结构,自己编写O/R部分的开发人员。使用iBatis基本上就是一个傻瓜式的开发,不需要考虑对象之间的关系,也就是one and more。只要你会使用SQL,你就可以快速上手。

 

Hibernate我没有做过实际项目,目前处于学习状态,很难说这个东西到底是好是坏,不过就代码而言,我更喜欢iBatis的参数设置方式,传递一个key或者一个map就可以了,框架帮你自动映射。而不是Hibernate的那种JDBC式的传参方式,丑陋无比,不能自动映射,必须手工一一对应。

 

实际上iBatis是一个O/R toolkit,而Hibernate是一个O/R Manager,更多地参与了对象实体的管理。采用Hibernate,就要去应用面向对象的一些设计理念,也就是对象的继承体系,要和数据库的设计关联起来。可以这样来说,iBatis建立的是一个二位体系,而Hibernate建立的则是一个三位体系。从这个意义上来说,采用iBatis和Hibernate,2者对代码底层架构甚至是数据库的设计有质的影响。基本上来说,只要有表结构,就可以采用iBatis。而如果想采用Hibernate,大概数据库设计也要按照OO的思维模式来设计了。

 

iBatis学习曲线温和,只要会SQL就可以进行开发了,不过因为是直接操作SQL,所以在跨数据库方面就比较笨拙了,而且对表结构进行修改的时候,所有的相关部分,包括xml配置文件,映射class类,执行类都需要修改。Hibernate基本上SQL由它自动生成,通过设置Dialect可以实现在不同数据库之间的切换,而基本上不需要修改代码。不过个人感觉这个东西上手还是蛮复杂的,当然我指的并不是简单应用,而是把一个iBatis应用转化为Hibernate应用。

 

回头再写一些代码,应该能够对Hibernate有更实际的了解。对于Hibernate的关系,我已经从DOOP里学到了,剩下的就是它的关联、继承以及组件了。

Commentaires

Veuillez patienter...
Le commentaire entré est trop long. Raccourcissez-le.
Vous n'avez rien entré. Réessayez.
Il est actuellement impossible d'ajouter votre commentaire. Réessayez plus tard.
Pour ajouter un commentaire, tu dois avoir l'autorisation de tes parents. Demander l'autorisation
Tes parents ont désactivé les commentaires.
Il est actuellement impossible de supprimer votre commentaire. Réessayez plus tard.
Vous avez dépassé le nombre maximal de commentaires qu'il est possible d'envoyer le même jour. Réessayez dans 24 heures.
Votre compte a pu laisser les commentaires désactivés parce que nos systèmes indiquent que vous risquez d'arroser d'autres utilisateurs de messages. Si vous pensez que votre compte a été désactivé par erreur, contactez l'assistance en ligne de Windows Live.
Effectuez la vérification de sécurité ci-dessous pour finaliser l'envoi de votre commentaire.
Les caractères entrés pour la vérification de sécurité doivent correspondre à ceux de l'image ou du fichier audio.

Pour ajouter un commentaire, connectez-vous avec votre identifiant Windows Live ID (si vous utilisez Messenger ou Xbox LIVE, vous avez un identifiant Windows Live ID). Connectez-vous


Vous n'avez pas d'identifiant Windows Live ID ? Inscrivez-vous

Rétroliens

L'URL de rétrolien de ce billet est :
http://cnfree2000.spaces.live.com/blog/cns!6201144F025F9D77!699.trak
Blogs Web qui font référence à ce billet
  • Aucune