我會盡量提供一個自己的答案。
讓方法拋出你的api,這是一種常見的API實踐。
一個ResultSet
就像一個List<HashMap<String, dataType>>
:
創建一個列表,並返回被填充到 HashMap中,其中字段名是關鍵,返回的數據每條記錄是 值再加入HashMap到列表。對於每條記錄,創建一個新的HashMap並重復。
您可以在resultSet上使用metaData來獲取返回的列數和返回的列的名稱。
//rs is a ResultSet
rs.getMetaData().getTableName(int Column);
rs.getMetaData().getColumnCount();
示例代碼選擇查詢:
private List<HashMap<String,Object>> selectQuery(sql) throws SqlException {
//assumption that connection is a global
List<HashMap<String, Object>> results = new ArrayList<HashMap<String, Object>>();
HashMap<String, Object> record = null;
PreparedStatement pStmt = conn.prepareStatement(sql);
ResultSet rs = pStmt.executeQuery();
while (rs.next() {
record = new HashMap<String, Object>();
for (int i : rs.getMetaData().getColumnCount()) {
record.put(rs.getMetaData().getTableName(i), rs.getString(i));
}
results.add(record);
}
rs.close();
return results;
}
連接 -
保持連接打開,直到他們關閉它。開發者應該知道 已經足夠好,以至於你應該總是關閉你的連接,否則 會造成泄漏。
謝謝大家的優秀資源,但這是一個很好的例子,可以練習好的風格,我希望可以詳細闡述設計問題。 – user3352280