2012-10-30 63 views
0

我在常規下面的代碼,我需要控制循環的行,這樣我可以在他們傳遞給其他線程夾頭拆分行(由演員)。不過貌似next()的不能叫,我沒有下面的測試爲什麼拋出錯誤時,接下來請在ResultSet常規

錯誤:

Oct 30, 2012 6:15:44 AM org.codehaus.groovy.runtime.StackTraceUtils sanitize 
WARNING: Sanitizing stacktrace: 
java.sql.SQLException: Closed Statement: next 
    oracle.jdbc.driver.OracleResultSetImpl.next(OracleResultSetImpl.java:242) 

回答

0

以下內容將起作用:只需使用java stype jdbc即可。

import oracle.jdbc.driver.OracleTypes 

driver = oracle.jdbc.driver.OracleDriver 

Connection conn = DriverManager.getConnection(".....", "**", "**") 
Statement stmt = conn.createStatement(); 
java.sql.ResultSet rs = stmt.executeQuery("select * from dual") 
while (rs.next()){ 
    println 'xx' 
} 
1

你確定這就是你所有的代碼?我看不出這是如何失敗的。

通常情況下,這種錯誤是由試圖打開第二ResultSet在單一Statement,然後在第一個(現已關閉)ResultSet

你可以試試這個,看看它是否工作調用next稱爲

ORACLE.eachRow("select 1 as x from dual") { row -> 
    println row.x 
} 
+0

唯一錯過的就是導入包的代碼。如果使用你的方法,沒有錯誤。但我需要使用next()來控制工作流程。我試圖使用MySQL的,但它也拋出了同樣的錯誤。 –

相關問題