2011-12-16 51 views
0

SQLite的預處理語句似乎執行查詢與原始的SQL語句的好方法。我只是想知道他們應該保持多久。的Android SQLite的預處理語句的生命週期

它是安全的靜態編譯的聲明,即只編譯一次,繼續用同樣的語句對於很多疑問? 如果這不是線程安全的,然後怎麼樣在線程本地? 相反的預處理語句還是首選,如果你只用一次?

回答

1

預處理語句的優點是:

  • 在執行計劃獲取緩存,性能會更好。

  • 這是編寫針對SQL注入作爲逃脫輸入 值的好方法。

  • 說到沒有未綁定變量的語句,數據庫 可以自由優化到最大程度。個人查詢將 快,但缺點是,你需要做的數據庫 編譯所有的時間,這比 更快的查詢的效益差。

對於Java編程對Statement and PreparedStatement

+0

感謝您的回答看看。你知道SQLite是否也編譯後緩存準備好的語句?也就是說,如果我使用相同的SQL編譯兩條語句,它將能夠重用第一條編譯語句。如果有緩存,你知道它什麼時候被清除,也許當數據庫連接被終止時。 – bluphoenix 2011-12-16 05:42:26