我有一个通过 Select 语句查询 Oracle 数据库的后台线程。该语句正在填充 ResultSet Java 对象。如果查询返回很多行,则 ResultSet 对象可能会变得非常大。如果它太大,我想取消后台线程,但更重要的是我想取消创建 ResultSet 对象并占用大量 Java 内存的线程。
从我目前在网上阅读的内容来看java.sql.Statement cancel()
,似乎是完成这项工作的最佳方式,有人可以证实这一点吗?有没有更好的办法?
java.sql.Statement close()
也可以,我可能会捕捉到 ExhaustedResultset 异常,但这可能不安全。
澄清一下,我不想要 ResultSet 或线程 - 我想从内存中完全丢弃两者。