Fun*_*hor 4 java datastax-java-driver datastax sonarqube
我在尝试关闭一些数据共享资源(Statement,ResultSet)时遇到了麻烦.使用后,Sonar正在大声喊叫我关闭这些资源.
(关于我使用myMethod()之后的信息,我调用了一个System.exit(0))Bu无论如何,我想根据声纳来做
session.close()是不够的,因为它似乎让Statement和ResultSet.
/!\ ResultSet和Statement来自com.datastax.com.driver,并且这些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();
}
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助 !
ResultSet不会"链接"到需要关闭的连接或任何其他资源.它由一个数组支持.请参阅: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/#!topic/ java-driver-user/ yjDP1xeYyYM
Statement仅包含语句ID,因此您也不需要关闭它.
| 归档时间: |
|
| 查看次数: |
1596 次 |
| 最近记录: |