你好,世界!
我在尝试关闭一些数据税资源(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();
}
提前感谢您的帮助!
1条答案
按热度按时间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,所以不需要也关闭它。