我有一个每日批处理过程,包括选择大量记录和格式化文件以发送到外部系统.我还需要将这些记录标记为已发送,以便明天不再传输.
在我天真的JDBC方式中,我会准备并执行一个语句,然后开始遍历记录集.因为我只是通过记录集前进,所以我的应用程序服务器不需要一次将整个结果集保存在内存中.可以从数据库服务器馈送记录组.
现在,让我说我正在使用hibernate.我不会立刻用一堆表示内存中整个结果集的对象结束吗?
Hibernate也会迭代结果集,因此只有一行保留在内存中.这是默认值.如果它贪婪地加载,你必须这样说.
使用Hibernate的原因:
"某人"是"创意"的列名(PRXFC0315.XXFZZCC12)
数据库设计仍然不稳定和/或您想要一个将列名映射到Java的地方.
无论如何你正在使用Hibernate
您有复杂的查询,而且您不熟练使用SQL
不使用Hibernate的原因:
您的应用程序的其余部分是纯JDBC
你不需要任何Hibernate的强大功能
您有复杂的查询,并且您可以熟练使用SQL
您需要数据库的特定功能才能使SQL执行