【问题标题】:Hibernate vs iBatis休眠与 iBatis
【发布时间】:2010-09-21 17:01:37
【问题描述】:

我们正在构建一个以数据库为中心的 Web 应用程序。我们最初开始使用 iBatis。
有一次我们认为 iBatis 可能不是很有用,原因如下:
1. 应用需求。确定我们是否需要从数据库中插入/更新/删除的代码
2.申请。代码将从面向对象转向面向数据库
3. 需要为实体版本等许多琐碎的事情编写大量样板代码(以避免脏数据库更新)
还有更多...
在决定使用 Hibernate 之后,现在我们已经完成了一半以上。我们正在寻找真正令人信服的理由来证明我们选择 Hibernate 而不是 iBatis 的合理性。

我知道 iBatis 和 Hibernate 是很好的框架,它们可以按照自己的方式很好地满足不同的需求。尽管如此,我们还是试图通过证明我们选择 Hibernate 的合理性来节省我们的努力。

听取各位专家的意见对我们有很大帮助。请注意,我们强烈支持保留 Hibernate。

【问题讨论】:

    标签: hibernate ibatis


    【解决方案1】:

    Hibernate 遵循 JPA 规范,允许您不直接依赖(供应商锁定)Hibernate。如果需要,您可以切换到其他实现,例如 TopLink。

    使用 Hibernate,您可以使您的代码 90%(或 100%,如果您不使用直接 JDBC 查询)独立于数据库(使用 HQL),即相同的代码可以在 MSSQL、MySQL 或 Oracle 上运行(没有任何对数据访问层进行了重大更改)。

    Hibernate 具有非常高的性能,支持缓存(第一级和第二级)。

    与 iBatis 相比,Hibernate 是一个非常好的 ORM(对象关系映射),在 iBatis 中,您最终会在 XML 中手动编码不同的查询,并且大多数时候使用 hibernate 的人最终会返回带有数据的映射(由于配置映射的开销)从 DB 实体到 Java 中的类),因此最终得到的代码是单个字段的删除或添加会导致代码发生重大变化。

    【讨论】:

    • 数据库独立在我们的例子中并没有真正的帮助。我们使用了许多 Oracle 的非标准特性
    • 还有一点——如果你使用的是hibernate而不是iBatis,你可以轻松支持分片(水平分区)。
    猜你喜欢
    • 2010-12-31
    • 2013-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-25
    • 2011-12-24
    • 2012-12-11
    • 2015-11-12
    相关资源
    最近更新 更多