Hello World!
我試圖關閉一些datastax資源(Statement,ResultSet)時遇到了麻煩。 Sonar在我使用它們後大吼我,關閉這些資源。關閉ResultSet和Statement資源(datastax,無close()方法)
(信息後,我用這個myMethod的()我叫System.exit(0))卜無論如何,我想根據聲納做
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();
}
在此先感謝您的幫助!
謝謝你vovka,我一定錯過了這個答案,不知道爲什麼。無論如何,現在我有我的結果。 (對於那些懷疑原始答案來自datastax產品經理的人,請參閱鏈接) – Fundhor
這是否意味着整個結果集都被拉入內存? –
編輯:從頭開始。它似乎做分頁。我的問題是:如果我執行一個查詢,然後從不對結果集做任何事情,結果集何時「過期」(由cassandra服務器或客戶端)。 –