【问题标题】:Hibernate List vs. JDBC ResultSetHibernate 列表与 JDBC ResultSet
【发布时间】:2017-05-12 22:11:31
【问题描述】:

Hibernate 非常适合代码可读性数据库可移植性

但是我意识到 Hibernate 需要大量内存。这是一个例子

休眠版本

 String hql = "FROM Employee";
    Query query = session.createQuery(hql);
    List results = query.list(); // this list is limited my the size of my RAM 

JDBC 版本

ResultSet resSet = connection.executeQuery("SELECT * FROM Employee"); 
while (resSet.next()) { 
// This resSet is not limited to my RAM
} 

因此,如果我有一个返回数十万行的查询,我应该更好地使用 JDBC 来处理它,因为这样我就可以按顺序处理每一行,而这不会占用我所有的 RAM。

我说的对吗?或者 Hibernate 是否有任何类似于 ResultSet 对象的“流列表”,不会“淹没”RAM?

【问题讨论】:

    标签: java hibernate jdbc


    【解决方案1】:

    您可以使用ScrollableResults 逐行获取休眠的结果。这个answer中有例子。

    【讨论】:

      【解决方案2】:

      阅读一点hibernate官网:

      http://hibernate.org/orm/

      回答你,hibernate 不可能(可能使用原生查询https://www.mkyong.com/hibernate/hibernate-native-sql-queries-examples/)比 JDBC 占用更少的内存或时间进程,因为 hibernate 是 JPA 和 JDBC 的抽象,所以它旨在帮助开发人员更快更轻松地编程但是处理它会花费更多的资源

      【讨论】:

        猜你喜欢
        • 2011-11-05
        • 1970-01-01
        • 1970-01-01
        • 2016-05-21
        • 2015-07-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多