回覆列表
  • 1 # 使用者2663777532769

    1.Statement、PreparedStatement和CallableStatement都是介面(interface)。

    2.Statement繼承自Wrapper、PreparedStatement繼承自Statement、CallableStatement繼承自PreparedStatement。

    3.

    Statement介面提供了執行語句和獲取結果的基本方法;

    PreparedStatement介面添加了處理IN引數的方法;

    CallableStatement介面添加了處理OUT引數的方法。

    4.

    a.Statement:

    b.PreparedStatement:

    可變引數的SQL,編譯一次,執行多次,效率高;

    安全性好,有效防止Sql注入等問題;

    c.CallableStatement:

    繼承自PreparedStatement,支援帶引數的SQL操作;

    支援呼叫儲存過程,提供了對輸出和輸入/輸出引數(INOUT)的支援;

    Statement每次執行sql語句,資料庫都要執行sql語句的編譯,

    最好用於僅執行一次查詢並返回結果的情形,效率高於PreparedStatement。

    PreparedStatement是預編譯的,使用PreparedStatement有幾個好處

    1.在執行可變引數的一條SQL時,PreparedStatement比Statement的效率高,因為DBMS預編譯一條SQL當然會比多次編譯一條SQL的效率要高。

    2.安全性好,有效防止Sql注入等問題。

    3.對於多次重複執行的語句,使用PreparedStament效率會更高一點,並且在這種情況下也比較適合使用batch;

    4.程式碼的可讀性和可維護性。

    注:

    executeQuery:返回結果集(ResultSet)。

    executeUpdate:執行給定SQL語句,該語句可能為INSERT、UPDATE或DELETE語句,

    或者不返回任何內容的SQL語句(如SQLDDL語句)。

    execute:可用於執行任何SQL語句,返回一個boolean值,

    表明執行該SQL語句是否返回了ResultSet。如果執行後第一個結果是ResultSet,則返回true,否則返回false。

  • 中秋節和大豐收的關聯?
  • 特朗普稱如俄羅斯願意合作,便考慮解除對俄製裁,特朗普有何用意?