jdbc statement三種方式的比較

2021-09-13 02:18:28 字數 980 閱讀 2971

我在整理jdbc打包寫乙個集合方便以後用的時候發現了這個問題,以前也沒有注意到下來研究了一翻

共同點

statement,preparedstatement和callablestatement都是介面(inte***ce)。

不同點

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

preparedstatement介面新增了處理 in 引數的方法; 

callablestatement介面新增了處理 out 引數的方法。

statement: 普通的不帶參的查詢sql;支援批量更新,批量刪除;

preparedstatement: 可變引數的sql,編譯一次,執行多次,效率高; 安全性好,有效防止sql注入等問題; 支援批量更新,批量刪除;

繼承自preparedstatement,支援帶引數的sql操作;支援呼叫儲存過程,提供了對輸出和輸入/輸出引數(inout)的支援;

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

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

1.在執行可變引數的一條sql時,preparedstatement比statement的效率高,因為dbms預編譯一條sql當然會比多次編譯一條sql的效率要高。

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

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

4.**的可讀性和可維護性。

這些吧都是個人認為的,其實吧還是有很多不一樣的比如我在多個新增的時候喜歡用》 

preparedstatement presta = conn.preparestatement(querysql);

因為它可以用個建構函式靈活插入,就是拼接要插入的東西靈活改變。

程序 三種型別,三種狀態

一 程序的概念 程序是執行乙個程式時所分配的資源,資源包括占用的cpu,記憶體等,是乙個動態執行過程。二 程序的組成 正文段使用者資料段 系統資料段 程序控制塊 pcb cpu暫存器值 堆疊 三 程序控制塊pcb 程序控制塊是系統用來控制和管理程序,獲得程序狀態和程序存在特徵的唯一標識。包括 程序標...

MYSQL inserOrUpdate三種寫法

一般資料表中都會不允許插入重複資料,先查詢資料庫中資料,再判斷是否存在,比較麻煩,可以直接用sql語句解決這個問題 1 insert into on duplicate key 無則新增,有則更新 insert into customer code name address createtime v...

Linux三種網路 vmware三種網路模式

nat 網路位址轉換 預設使用vmnet8 原理 nat是network address translate的簡稱 nat計數應用在internet閘道器和路由器上,比如192.168.0.123這個位址要訪問internet,它的資料報就要通過乙個閘道器或者路由器,而閘道器或者路由器擁有乙個能訪問...