2
我的目標是將與MySql數據庫的所有交互集中到一個類中(例如SqlUtils)。即使在連接關閉後,我基本上仍想保持對ResultSet
或類似的類的訪問。以下方式不起作用,因爲在我的業務方法接收到ResultSet之後,將拋出異常,因爲基礎連接已關閉。我想強調的是,打開和關閉數據庫的連接必須在getResultSet()
之內進行。將ResultSet的結果存儲在列表中
public ResultSet getResultSet(String sql) {
try (Connection conn = getConnection();){
return conn.createStatement().executeQuery(sql);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
什麼,我現在正在考慮做的是這樣的:
public List<ResultHolder> getResultSet(String sql) {
List<ResultHolder> list = new LinkedList<>();
try (Connection conn = getConnection();
ResultSet res = conn.createStatement().executeQuery(sql);) {
while(res.next()) {
list.add(res.convertToResultHolder());
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
是否有任何類,做什麼,我需要,我表示ResultHolder
。
哇!正是我需要的。謝謝! – mossaab 2013-03-08 21:38:25
不客氣,很高興它爲你解決。 – anubhava 2013-03-08 21:45:19