休眠优势? [关闭]
Posted
技术标签:
【中文标题】休眠优势? [关闭]【英文标题】:Hibernate advantage? [closed] 【发布时间】:2010-11-12 00:19:24 【问题描述】:任何人都可以告诉我使用 Hibernate 的主要优势吗?
【问题讨论】:
相对于其他 ORM 的优势或使用任何 ORM 的优势? ***.com/questions/2754151/… 拜托,拜托,请您自己研究一下您一直在问的一些问题。如果您只看一下,几乎所有您有疑问的主题都已被回答了 1000 次。询问 SO 是偷懒的出路。 【参考方案1】:Hibernate 让您可以相对轻松地开发可维护的数据访问层。
Hibernate 是建立在 JDBC 之上的,所以显然它不能做普通 JDBC 不能做的任何事情。 Hibernate 是一个庞大的代码库;如果您使用普通 JDBC 构建自己的数据访问层,您将需要编写更多代码来匹配其功能。在简单的报告应用程序中,编写所需的数据访问层功能相对容易;但是随着应用程序变得越来越复杂,必须编写的代码量也会增加。让我给你几个例子,这些例子并不容易手动实现,但 Hibernate 开箱即用:
-
确保全局锁定获取顺序
确定对象的哪些字段已更改并适当地调整查询(可能始终不是一个好主意)
在不同用例中灵活切换各种获取策略(“这里我希望同时加载用户和地址,但这里我只需要用户”)
正如我之前所暗示的,手动实现这些并非不可能——毕竟,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/
【讨论】:
以上是关于休眠优势? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章