2011-03-13 48 views
1

在我的項目中,我必須根據傳遞的表創建插入語句。 所以,我有兩個選擇 1)寫PreparedStatement和批量 2運行)插入到創建表值(..)(..)(..)Matcher.quoteReplacement versus preparedstatement

我想知道原因,更喜歡(1)在(2)如果我使用Matcher.quoteReplacement()逃離值提前

感謝

回答

3

Matcher.quoteReplacement無意引用SQL字符串,所以你無法確定,以避免SQL插入使用它。但是,即使你有一個工作引用功能,準備語句仍然是更好的有以下幾個原因:

  • 你不必擔心忘記引用輸入
  • 你不動心走捷徑不加引號的你「知道」是安全的
  • 數據庫可以緩存的執行計劃,以避免解析使用不同的參數類似SQL的查詢,從而提高性能
  • 的代碼變得更加可讀的(恕我直言)