SQL 查詢中遇到的問題,以及解決辦法
阿新 • • 發佈:2019-01-05
- 資料庫連線
在資料庫連線時 ,最初在每次開始連線資料庫後,都沒有關閉,導致當我們如果在同一個Action 裡面執行太多的次數連線時候,MySQL 會因為太多連線而拒絕 連線,原因是Too many connection.因此需要每次連線之後需要關閉
錯誤的查詢方法.
Statement state = null;//作為類屬性
public ResultSet executeQuery(String sql) {
try {
result = state.executeQuery(sql);
} catch (Exception e) {
e.printStackTrace();
result = null ;
}
return result;
}
這樣每次查詢資料庫都必須連線資料庫,因為state 中有對 result的引用,如果不重新 new 一個 connect ,就會出現之前的結果集被新插入的結果集覆蓋掉,在進行 while(result.netxt())迴圈巢狀時,會覆蓋掉之前result集合,從而導致丟擲異常.
正確的寫法:
public ResultSet executeQuery(String sql) {
try {
Statement state = null;//作為區域性變數.
result = state.executeQuery(sql);
} catch (Exception e) {
e.printStackTrace();
result = null;
}
return result;
}