2012-06-04 13 views
1

我的一般問題是:如果批處理中只有一個查詢,則調用preparedStatement.executeBatch()效率低下嗎?僅使用一個查詢執行批處理?

我正在爲Java Helper Library寫一個通用方法來執行查詢。有一個名爲HelperQuery的javabean,它包含另一個名爲QueryParameter的javabean數組列表,其中包含一個類型(如STRINGBLOBINT等)和一個值。 QueryParameter用於填寫HelperQueryPreparedStatement。在很多情況下,只會有一個數組QueryParameter s。

我的具體問題是:我應該處理不同的事情,如果有中QueryParameter只有一個陣列或者這將是確定處理事情完全一樣的,不管QueryParameter S如何多有?

回答

2

executeBatch距離PreparedStatement的父Statement一個「super」方法,它返回一個int[],其指示所執行的查詢的成功/失敗和executeQuery返回ResultSet。因此,將這兩個方法調用完全不同是一個好主意,因此開發人員可以以不同方式處理它們。我建議:

  1. executeQuery(HelperQuery helperQuery)方法,該方法將返回相關的ResultSet,將只從開發者可以指定要使用的QueryParameterHelperQuery(爲方便起見)和其他方法得到的第一個QueryParameter S(要麼他們指定了一個QueryParameter列表的編號,或者只是明確傳遞QueryParameter(我推薦兩個中的第二個))。
  2. 一個executeBatch(HelperQuery helperQuery方法將返回int[]和開發人員可以處理,因爲他們希望。

它總是好的給用戶(開發人員在這種情況下)權力做他們想要的東西(也提供了一個簡單的解決方案爲他們執行常見任務)。

+0

在我爲問題生成代碼時實現了答案。 – kentcdodds

相關問題