论坛首页 Java企业应用论坛

谈谈Hibernate令人爽的地方

浏览 6541 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-07-25  
由于工作原因,现在将ORM从熟悉的Hibernate转到IBatis

最近组里要把过去的一个项目从ms sql转到oracle下,原本在HB下很轻松的事情
结果现在要一个模块一个模块的改,而且出现的问题多多,改起来超级麻烦

发现IBatis在持久层为我们做的少之又少,带来的是一堆堆 XML
改的时候IB不给输出执行时的SQL语句,出错基本不知道是什么地方的问题,只能一点点摸索(比如断点),要去XML中一个一个的对比,粘出去到ORACLE下执行语句.
一个小项目动辄几十个XML用来映射SQL,调程序必须在 SQL/CODE之间来回切换,谁知道是不是SQL在ORACLE下出错了,人写的么,都会有一点点毛病,
比如:
select user.id,user.name form user_table as user where user.pass=#password#;

这样的语句在SQL下可以正常运行,跑到ORACLE就会出错,ibatis应该报SQL没有正常结束
像这样烦人的问题每天都遇到一堆,因为你不知道以前好用的SQL在什么时候什么地方会出错,而且还把异常封状的那么难看

再说说性能问题
总是看人家说hibernate在批量操作的时候很慢(对比JDBC),其实完全是句废话,任何ORM封装JDBC都要有性能开销,不想要性能开销的可以用JDBC嘛,而且HB提供方法可以很容易的局部绕过HB API,直接使用JDBC
. . .
Connection conn=session.getConnection();

JDBC CODE
....

通常大家都会说这样一个例子,HB在update 1W以上数据是的性能,其实可以通过setBatch来解决

作为ORM框架,应该为我们带来开发.管理上的效率而不是负担


一点点个人看法,不喜欢的马上扔砖头  
   发表时间:2007-07-25  
用XML代替hibernate也是一种解决方案,有些框架不用写任何代码,就靠XML就可以建立起一个网站。
0 请登录后投票
   发表时间:2007-07-25  
log4j中设置为debug级别后,ibatis可以输出执行时的SQL语句,SQL很干净很清晰,而且连参数都给你输出了
hibernate生成的SQL你看的不累吗?

hibernate的性能问题,不仅仅体现在批量操作的问题上吧?hibernate做报表的时候,那滋味你觉得很好吗?
0 请登录后投票
   发表时间:2007-07-26  
carlosbdw 写道
用XML代替hibernate也是一种解决方案,有些框架不用写任何代码,就靠XML就可以建立起一个网站。

这时候,使用XML来写代码了.一种代码换另一种代码罢了.
0 请登录后投票
   发表时间:2007-07-26  
withoutmewang 写道
log4j中设置为debug级别后,ibatis可以输出执行时的SQL语句,SQL很干净很清晰,而且连参数都给你输出了
hibernate生成的SQL你看的不累吗?

hibernate的性能问题,不仅仅体现在批量操作的问题上吧?hibernate做报表的时候,那滋味你觉得很好吗?

不明白,做报表干嘛要用Hibernate?
大家都那么喜欢看SQL?偶每次看Hibernate只需要看它打印出来的SQL数目是不是我预计中的数目就差不多了.干嘛非得一个劲地扣语句?要看就从from xxxx那一节看.
0 请登录后投票
   发表时间:2007-07-26  
withoutmewang 写道
log4j中设置为debug级别后,ibatis可以输出执行时的SQL语句,SQL很干净很清晰,而且连参数都给你输出了
hibernate生成的SQL你看的不累吗?

hibernate的性能问题,不仅仅体现在批量操作的问题上吧?hibernate做报表的时候,那滋味你觉得很好吗?


呵呵,我基本不看HB生成的SQL,至少HB不会在SQL这个曾面上出错

这位高手麻烦你从  骨头的骨头来给我将一讲IB,把拥有70多个XML的项目移植数据库的 好方案
0 请登录后投票
   发表时间:2007-07-26  
连 ibatis 怎么出来log 都没弄明白.....
说什么好呢?
0 请登录后投票
   发表时间:2007-07-26  
yh_private 写道
withoutmewang 写道
log4j中设置为debug级别后,ibatis可以输出执行时的SQL语句,SQL很干净很清晰,而且连参数都给你输出了
hibernate生成的SQL你看的不累吗?

hibernate的性能问题,不仅仅体现在批量操作的问题上吧?hibernate做报表的时候,那滋味你觉得很好吗?


呵呵,我基本不看HB生成的SQL,至少HB不会在SQL这个曾面上出错

这位高手麻烦你从  骨头的骨头来给我将一讲IB,把拥有70多个XML的项目移植数据库的 好方案


不是ibatis有错。

是你们团队的数据库能力十分菜,ibatis的能力十二分菜,这种情况下还选ibatis,自然是以卵去碰石头,只能菜上加菜。谁告诉你Ibatsi是ORM工具,ibatis的定位本身就是SQL mapping,而不是orm。

天下哪有那么完美的数据库迁移方案,这句HQL在mysql和postgres下表现就不一样,

from User u group by user.name,

如果是大型项目,马上得让你把hibernate骂得狗血淋头。
0 请登录后投票
   发表时间:2007-07-26  
yh_private 写道
withoutmewang 写道
log4j中设置为debug级别后,ibatis可以输出执行时的SQL语句,SQL很干净很清晰,而且连参数都给你输出了
hibernate生成的SQL你看的不累吗?

hibernate的性能问题,不仅仅体现在批量操作的问题上吧?hibernate做报表的时候,那滋味你觉得很好吗?


呵呵,我基本不看HB生成的SQL,至少HB不会在SQL这个曾面上出错

这位高手麻烦你从  骨头的骨头来给我将一讲IB,把拥有70多个XML的项目移植数据库的 好方案



ibatis用不着我来讲,您随便google一下就行了。
您要好方案,我的建议是:得,您就改吧。

在抱怨框架之前,先把自己的问题解决掉。
0 请登录后投票
   发表时间:2007-07-26  
那是你还没遇到hibernate让你痛苦的地方。
IBatis 只是 SQL Mapping 工具,用起来还是挺灵活的。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics