有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

javahibernate与资源利用

我正在办公室讨论是否使用Hibernate。目前,我们的代码使用纯jdbc和sql语句来获取我们需要的数据。可以想象,这使得我们的代码很难维护。我建议切换到Hibernate,使我们的代码看起来和工作得更好。然而,我们的应用程序需要有高性能(在时间和内存利用率方面)。我的同事们一直认为,切换到Hibernate会使我们获取不必要的数据,从而使我们的应用程序速度变慢,消耗更多的RAM内存

这是真的吗?我们可以用什么把戏吗?在与同事的讨论中,我有什么可以使用的论点吗

谢谢


共 (1) 个答案

  1. # 1 楼答案

    首先,对于大多数应用程序来说,在高性能和低内存之间存在权衡。如果两者都需要,则通常需要考虑其他权衡,例如在JDBC应用程序中的可维护性。p>

    您可以向同事争辩,对于所有关系,都可以指定获取类型:

    • 急切-加载bean时获取字段
    • LAZY-仅在使用字段时获取该字段

    当bean在实体管理器的控制下时,就会发生这种情况。如果远程获取对象,则不可能进行额外的延迟加载。 但问题是,Hibernate能否满足您的需求在很大程度上取决于应用程序的性质

    如果你有一个web应用程序和巨大的对象图,那么如果你使用JPA/Hibernate和SEAM之类的东西,这将是一个很大的好处,因此将所有对象都置于实体管理器的控制之下(即使是在你的JSF托管bean中)。在这里,您不必关心对象图中的哪些字段是实际需要的,因此不需要在这个问题上花费任何一行代码

    但是,如果你进行科学或金融计算,当然会更快。通过定制(以及大型、复杂且难以维护的)SQL语句,你可以得到你想要的一切。对于我的开发,如果可能的话,我会使用JPA(在后端Hibernate中)。对我们来说,更干净的代码比几微秒更快的计算时间更重要