查詢的是資料庫名稱,賬號權限足夠,while (rs.next())回圈時,有時不進入回圈
查的資料少
/**
* 查詢庫名
*
* @return
*/
public List<String> GetLibList() {
List<String> result = new ArrayList();
try {
String sql = "select SCHEMA_NAME from information_schema.schemata";
// 創建sql陳述句執行器
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
// ResultSetMetaData rs_metaData = rs.getMetaData();
while (rs.next()) {
String a = new String();
a = rs.getString("SCHEMA_NAME");
result.add(a);
}
return result;
} catch (Exception e) {
return result;
}
}
uj5u.com熱心網友回復:
例如:有十條資料,只能查出來七條,有三次直接跳過回圈uj5u.com熱心網友回復:
雖然可能性不大但是自己吞例外也不是好習慣 } catch (Exception e) {
e.printStackTrace();
return result;
}再就是看下是否連錯資料庫
uj5u.com熱心網友回復:
你這代碼,不存在直接跳過回圈的情況。如果 rs.next() 回傳 false ,回圈就直接結束了,怎么會跳過?
如果 rs.next() 回傳 true,那就一定會進入回圈體,既然進入了回圈體,就一定不是跳過回圈的狀況了。
另外,例外沒有進行處理。代碼當中吞掉例外,是最不可取的,當程式出現問題的時候,吞掉例外會增加問題排查的難度。
樓主的這段代碼,出現問題最可能的原因有兩個:
1. 程式連接的賬戶權限沒給全,所以,查詢的資料可能不全;(當然,樓主說權限管夠,那就不考慮了)
2. 回圈程序中拋出了例外,比如,回圈第8條資料的時候拋出例外,然后,例外被吞了,直接回傳了7條記錄。
uj5u.com熱心網友回復:
我贊成第二點,剛寫java不太懂,明天上班了在研究一下uj5u.com熱心網友回復:
資料庫連接的沒問題,換了另一個資料庫還是這樣,明天這樣試試看轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/273917.html
標籤:Java SE
