【发布时间】:2012-04-26 18:09:24
【问题描述】:
我正在清理一个非常糟糕的大型 web 应用程序。我不能一次全部完成,所以我把它分成几部分。我想做的一件事是用函数实现一个类,该函数接受 SQL 语句,然后返回一个集合。我的计划是,一旦解决了问题,我就可以到处寻找数据库框架来替换该层,而不会影响 web 应用程序的其余部分。
从模板样式数据库访问函数中返回 ResultSet 的最大问题是,如果不禁用 ResultSet,我无法关闭连接。
我很高兴在这个旧的stackoverflow post 中找到建议。
我阅读了 CachedRowSet 上引用的文章,但我担心该文章在哪里声明它的使用可能会通过将大量结果填充到自身中而导致占用大量 JVM 内存的问题。
替代的 Apache ResultSetDynaClass 或任何其他 Collection 不会有同样的问题吗?结果必须以一种或另一种方式写入内存。对吧?
如果我使用 ChaedRowSet、ResultSetDynaClass 或 Java 集合来存储 ResultSet 数据,我会在关闭 ResultSet 后丢失这些数据吗?
我使用 HashMaps 来存储来自通用数据库查询函数的单个记录。
如何使用 java Collections 来存储多条记录而不使代码变得繁琐?假设我可以,它会比其他两个选项更节省资源或更灵活吗?
提前感谢您提供任何信息或想法。
【问题讨论】:
标签: java collections jdbc resultset cachedrowset