`
yh_private
  • 浏览: 38785 次
  • 性别: Icon_minigender_1
  • 来自: 长春
最近访客 更多访客>>
社区版块
存档分类
最新评论

谈谈Hibernate令人爽的地方

阅读更多
由于工作原因,现在将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框架,应该为我们带来开发.管理上的效率而不是负担


一点点个人看法,不喜欢的马上扔砖头  
分享到:
评论
10 楼 zhkchi 2007-07-27  
题目和内容 严重脱离了,呵呵。

ibatis肯定可以看到log的,而且一定比hb的要好看很多。

如果你2个都不熟悉的话,ibatis无疑更适合你,hibernate太灵活了,导致不好用。ibatis就容易上手很多很多。。。当然了,一般也会满足你得要求,看你熟悉的层度了。

9 楼 liusong1220 2007-07-26  
那是你还没遇到hibernate让你痛苦的地方。
IBatis 只是 SQL Mapping 工具,用起来还是挺灵活的。
8 楼 withoutmewang 2007-07-26  
yh_private 写道
withoutmewang 写道
log4j中设置为debug级别后,ibatis可以输出执行时的SQL语句,SQL很干净很清晰,而且连参数都给你输出了
hibernate生成的SQL你看的不累吗?

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


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

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



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

在抱怨框架之前,先把自己的问题解决掉。
7 楼 ray_linn 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骂得狗血淋头。
6 楼 yananay 2007-07-26  
连 ibatis 怎么出来log 都没弄明白.....
说什么好呢?
5 楼 yh_private 2007-07-26  
withoutmewang 写道
log4j中设置为debug级别后,ibatis可以输出执行时的SQL语句,SQL很干净很清晰,而且连参数都给你输出了
hibernate生成的SQL你看的不累吗?

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


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

这位高手麻烦你从  骨头的骨头来给我将一讲IB,把拥有70多个XML的项目移植数据库的 好方案
4 楼 我想我是海 2007-07-26  
withoutmewang 写道
log4j中设置为debug级别后,ibatis可以输出执行时的SQL语句,SQL很干净很清晰,而且连参数都给你输出了
hibernate生成的SQL你看的不累吗?

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

不明白,做报表干嘛要用Hibernate?
大家都那么喜欢看SQL?偶每次看Hibernate只需要看它打印出来的SQL数目是不是我预计中的数目就差不多了.干嘛非得一个劲地扣语句?要看就从from xxxx那一节看.
3 楼 我想我是海 2007-07-26  
carlosbdw 写道
用XML代替hibernate也是一种解决方案,有些框架不用写任何代码,就靠XML就可以建立起一个网站。

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

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

相关推荐

    Hibernate入门到精通

    "Hibernate入门到精通" Hibernate 是一个基于Java的ORM(Object-Relational Mapping,对象关系映射)框架,它提供了一种简洁高效的方式来访问和操作关系数据库。下面是 Hibernate 的主要知识点: Hibernate 简介 ...

    hibernate 5.2.15

    hibernate 5.2.15 hibernate 5.2.15 hibernate 5.2.15 hibernate 5.2.15 hibernate 5.2.15hibernate 5.2.15

    hibernate jar包:hibernate-commons-annotations-4.0.1.Final.jar等

    Hibernate.jar包,Hibernate可以应用在任何使用JDBC的场合,包含 hibernate-commons-annotations-4.0.1.Final.jar hibernate-core-4.1.12.Final.jar hibernate-ehcache-4.1.12.Final.jar hibernate-entitymanager-...

    HIBERNATE 3.2 (1)

    HIBERNATE HIBERNATE HIBERNATE HIBERNATE

    hibernate jar包程序文件

    hibernate-commons-annotations-4.0.1.Final.jar hibernate-core-4.1.12.Final.jar hibernate-ehcache-4.1.12.Final.jar hibernate-entitymanager-4.1.12.Final.jar hibernate-jpa-2.0-api-1.0.1.Final.jar ...

    hibernate3.zip 包含hibernate3.jar

    Hibernate3 是一个非常重要的Java持久化框架,它简化了数据库操作,使得开发人员可以更加专注于业务逻辑而不是数据库的细节。这个`hibernate3.zip`压缩包包含了`hibernate3.jar`,它是Hibernate 3版本的核心库,包含...

    hibernate关联映射详解

    hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,包含4个说明文档,分别详细解说了hibernate...

    hibernate和MySQL的jar

    在描述中提到的“核心jar,亲测可用,跑demo是够用了”,这表明这些jar文件包含了运行Hibernate与MySQL交互所需的基本组件,并且已经有人验证过它们在演示或测试环境中可以正常工作。通常,这包括Hibernate的核心库...

    Hibernate完整使用教程

    Hibernate 的创始人是 Gavin King,他是一名澳大利亚的软件开发者。Gavin King 于 2001 年创建了 Hibernate 项目,旨在提供一种简洁的方式来访问关系数据库。 POJO POJO(Plain Old Java Object)是 Java 语言中的...

    kingbaseV8 hibernate jdbc 驱动

    在Java开发环境中,与KingbaseV8数据库进行交互通常会用到Hibernate框架和JDBC驱动。 Hibernate是一个优秀的对象关系映射(ORM)框架,它简化了Java应用程序对数据库的操作,通过将Java对象与数据库表进行映射,...

    HibernateTools-3.2.4

    HibernateTools是Java开发人员在使用Hibernate ORM框架时的有力辅助工具集,主要目的是为了提高开发效率,简化数据库操作。在HibernateTools 3.2.4版本中,它包含了一系列的特性与插件,以支持更便捷地进行对象关系...

    hibernate-release-4.1.4

    【描述】中的"hibernate的jar包"指的是Hibernate框架的运行库文件,这些JAR文件包含了Hibernate的所有核心API、实现和依赖库,如Hibernate Commons Annotations、Hibernate EntityManager、Hibernate Core等。...

    hibernate-extensions和Middlegen-Hibernate

    《hibernate-extensions与Middlegen-Hibernate:数据库到Java对象的自动化转换》 在Java的持久化层开发中,Hibernate作为一款强大的ORM(对象关系映射)框架,极大地简化了数据库操作。然而,手动编写实体类和映射...

    Hibernate3的依赖包

    Hibernate3是一个广泛使用的Java对象关系映射(ORM)框架,它允许开发者用面向对象的方式处理数据库操作,极大地简化了Java应用程序与数据库之间的交互。在这个"Hibernate3的依赖包"中,包含了运行Hibernate3应用...

    hibernate的dtd 包含hibernate.properties

    在这个主题中,我们主要关注的是Hibernate的配置文件`hibernate.properties`以及它的DTD(Document Type Definition)文件,包括`hibernate-configuration-3.0.dtd`和`hibernate-mapping-3.0.dtd`。 首先,`...

    hibernate5相关jar包

    Hibernate 是一个开源的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库,极大地简化了Java应用中的数据存取工作。本压缩包包含了与Hibernate 5相关的jar包,这些jar包是构建和运行基于...

    hibernate3全部jar包:hibernate3.jar.zip 下载

    Hibernate3 是一个强大的Java持久化框架,它允许开发者将数据库操作与业务逻辑解耦,使得应用程序的开发更为简便。这个“hibernate3全部jar包:hibernate3.jar.zip”包含了所有必要的库文件,方便用户一次性下载并...

    Hibernate-Extension Middlegen-Hibernate

    《Hibernate扩展Middlegen-Hibernate:数据库到Java对象的映射神器》 在Java开发领域,Hibernate作为一种流行的Object-Relational Mapping(ORM)框架,极大地简化了数据存取操作,而Middlegen作为Hibernate的一个...

    Hibernate面试题专栏 - 最全的Hibernate面试题, Hibernate笔试题, Hibernate问题

    【标题】与【描述】提及的是“Hibernate面试题专栏”,主要涵盖了全面的Hibernate面试题、笔试题以及相关问题,这表明我们将要讨论的是Java领域中著名的对象关系映射框架——Hibernate的相关知识。Hibernate是一个...

    Hibernate3.6

    **Hibernate 3.6 框架详解** Hibernate 是一个广泛使用的开源对象关系映射(ORM)框架,它为Java开发者提供了便捷的方式来处理数据库操作。在 Hibernate 3.6 版本中,这个框架继续强化了其在简化数据库访问、提高...

Global site tag (gtag.js) - Google Analytics