1
我加載到數據庫表8000的記錄有關的用戶,我對這些數據做一些操作,並在結束時,我想與平衡接收回來我的8000條記錄的值。我的代碼:的ResultSet不返回所有
public void getBalance(String database){
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
conn=DriverManager.getConnection(
"jdbc:oracle:thin:@address","user","password");
stmt=conn.createStatement();
rs=stmt.executeQuery("select count(*) from balance1");
int count=0;
while(rs.next()){
count=rs.getInt(1);
}
System.out.println("The count is "+count);
conn.setAutoCommit(false);
stmt.setFetchSize(count);
rs = stmt.executeQuery("select * from balanceview");
writeToAFile(rs);
}catch(Exception e){
e.printStackTrace();
}finally{
if(conn!=null){
try{
conn.close();
}catch(Exception e){
_logger.severe(e.getMessage());
e.printStackTrace();
}
}if(stmt!=null){
try{
stmt.close();
}catch(Exception e){
_logger.severe(e.getMessage());
e.printStackTrace();
}
}if(rs!=null){
try{
rs.close();
}catch(Exception e){
_logger.severe(e.getMessage());
e.printStackTrace();
}
}
}
}
但我面臨的問題只有2000個值返回。有沒有辦法返回所有8000個值。
什麼是'count = rs.getInt(1)'*應該*做什麼?它應該是'count ++'而不是?我還建議''stmt.setFetchSize(count)'不是一個神話般的想法,除非你有大量的內存扔在這... – JonK
你正在從'balance1'中選擇計數,但是之後查詢'balanceview' 。這是正常的嗎? – Tunaki
有餘額1是我的表,其中所有8000個客戶存儲和balanceview僅僅是包含餘額1臺簡單的選擇 – user3428496