关闭ResultSet和Statement资源(datastax,无Close()方法)

t3psigkw  于 2022-09-27  发布在  Cassandra
关注(0)|答案(1)|浏览(219)

你好,世界!

我在尝试关闭一些数据税资源(Statement、ResultSet)时遇到了麻烦。声纳在我使用完这些资源后对我大喊大叫,要我关闭它们。
(使用此myMethod()后,我调用System以获取信息。exit(0))Bu无论如何,我想根据Sonar来做

  • 会话。close()*不够,因为它似乎允许语句和结果集。
    /!\ ResultSet和Statement来自com.datastax.com。驱动程序和这些close()方法在它们上不存在。(不同于java.sql)

我想是session.getCluster。close()可以,但我不想关闭集群。

正确关闭这些资源的正确方式是什么

import com.datastax.driver.core.ResultSet;
import com.datastax.driver.core.Row;
import com.datastax.driver.core.Session;
import com.datastax.driver.core.Statement;
public void myMethod() {

    Statement statement = session.prepare("select * from .....").bind();
    ResultSet rs = session.execute(statement);

    // doSomethingWithThisResultSet() ...

    session.close();
}

提前感谢您的帮助!

nnt7mjpx

nnt7mjpx1#

结果集未“链接”到需要关闭的连接或任何其他资源。它由一个阵列支持。参见:https://github.com/datastax/java-driver/blob/2.1/driver-core/src/main/java/com/datastax/driver/core/ArrayBackedResultSet.java
信用:https://groups.google.com/a/lists.datastax.com/forum/#!主题/java驱动程序用户/yjDP1xeYYM
语句只包含语句ID,所以不需要也关闭它。

相关问题