設計模式被稱爲Pagination(使用遊標)。例如,當您向Oracle DB發送查詢時,返回的結果集中的默認結果數爲50.只有當您要求結果集獲得next()
時,它纔會返回下一個50個結果。這就是大多數的DB是如何工作的,並設計成高效地爲這樣的格局(見本code example):
public static void viewTable(Connection con, String dbName)
throws SQLException {
Statement stmt = null;
String query =
"select COF_NAME, SUP_ID, PRICE, " +
"SALES, TOTAL " +
"from " + dbName + ".COFFEES";
try {
stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
String coffeeName = rs.getString("COF_NAME");
int supplierID = rs.getInt("SUP_ID");
float price = rs.getFloat("PRICE");
int sales = rs.getInt("SALES");
int total = rs.getInt("TOTAL");
System.out.println(coffeeName + "\t" + supplierID +
"\t" + price + "\t" + sales +
"\t" + total);
}
} catch (SQLException e) {
JDBCTutorialUtilities.printSQLException(e);
} finally {
if (stmt != null) { stmt.close(); }
}
}
所以,你可以打開該文件,並寫入每「頁」你得到的結果,問爲下一頁等等。一旦你完成 - 關閉文件。
好吧。那麼修改這個場景的'Composite'或'Visitor'設計模式怎麼樣? – jfun 2015-01-20 19:40:51
@ FarhangAmary我不明白你的意見。如果您認爲這些設計模式與問題相關 - 請將其作爲答案解釋如何。 – alfasin 2015-01-20 19:43:01
感謝您的快速響應。我從來沒有在Java批處理中使用過分頁模式。你可以請分享一個分頁設計模式的鏈接,這樣我可以更多地瞭解這種模式。 – 2015-01-20 19:46:38