【问题标题】:Hibernate advantage? [closed]休眠优势? [关闭]
【发布时间】:2010-11-12 00:19:24
【问题描述】:

任何人都可以告诉我使用 Hibernate 的主要优势吗?

【问题讨论】:

  • 相对于其他 ORM 的优势或使用任何 ORM 的优势?
  • 拜托,拜托,请您自己研究一下您一直在问的一些问题。如果您只看一下,几乎所有您有疑问的主题都已被回答了 1000 次。询问 SO 是偷懒的出路。

标签: java c# hibernate


【解决方案1】:

Hibernate 让您可以相对轻松地开发可维护的数据访问层。

Hibernate 是建立在 JDBC 之上的,所以显然它不能做普通 JDBC 不能做的任何事情。 Hibernate 是一个庞大的代码库;如果您使用普通 JDBC 构建自己的数据访问层,您将需要编写更多代码来匹配其功能。在简单的报告应用程序中,编写所需的数据访问层功能相对容易;但是随着应用程序变得越来越复杂,必须编写的代码量也会增加。让我给你几个例子,这些例子并不容易手动实现,但 Hibernate 开箱即用:

  1. 确保全局锁定获取顺序
  2. 确定对象的哪些字段已更改并适当地调整查询(可能始终不是一个好主意)
  3. 在不同用例中灵活切换各种获取策略(“这里我希望同时加载用户和地址,但这里我只需要用户”)

正如我之前所暗示的,手动实现这些并非不可能——毕竟,Hibernate 做到了。但他们需要大量的时间投资。在许多(大多数?)应用程序中,专注于业务逻辑的复杂性将是对开发人员时间的更好投资。

请参阅我的comment in another thread,了解 Hibernate 性能。

【讨论】:

    【解决方案2】:

    如果您需要您的应用程序处理多个不同的数据库,我发现它很有用。例如,Hibernate 将使将 MySql DB 替换为 Oracle 数据库变得更加容易。

    【讨论】:

      【解决方案3】:

      更容易开发,但仅适用于简单的应用程序。

      更多信息请参见How can I design a Java web application without an ORM and without embedded SQL 中的答案。

      【讨论】:

      • 为什么不用于复杂的应用程序?
      【解决方案4】:

      不必编写自己的 DAL。

      最初可能会有一个陡峭的学习曲线,但一旦你掌握了它的要点,它确实会导致更快的发展。

      【讨论】:

        【解决方案5】:

        是ORM框架(对象关系映射)!

        【讨论】:

          【解决方案6】:

          ORM(如 Hibernate)使使用具有坚实、可靠的数据库支持的 POJO / POCO 成为可能,并且无需大惊小怪。 (注:大惊小怪的数量不保证为零,但通常比其他解决方案少。YMMV。)

          【讨论】:

            【解决方案7】:

            Hibernate 提高了项目的生产力和可维护性。
            这可能会有所帮助
            http://mudassirshahzad.com/why-hibernate-should-be-chosen-for-projects-advantages-of-hibernate/

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2015-06-08
              • 2010-12-31
              • 2017-06-23
              • 2014-12-14
              • 2012-03-10
              • 2023-03-25
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多