Statement與PreparedStatement的區(qū)別

1:創(chuàng)建時的區(qū)別:

Statement statement = conn.createStatement();

PreparedStatement preStatement = conn.prepareStatement(sql);

執(zhí)行的時候:

ResultSet rSet = statement.executeQuery(sql);

ResultSet pSet = preStatement.executeQuery();

由上可以看出,PreparedStatement有預(yù)編譯的過程,已經(jīng)綁定sql,之后無論執(zhí)行多少遍,都不會再去進行編譯,

而 statement 不同,如果執(zhí)行多變,則相應(yīng)的就要編譯多少遍sql,所以從這點看,preStatement 的效率會比 Statement要高一些.

preStatement是預(yù)編譯的,所以可以有效的防止 SQL注入等問題

2.prepareStatement可以替換變量

在SQL語句中可以包含?,可以用ps=conn.prepareStatement("select * from Cust where ID=?");

int sid=1001;

ps.setInt(1, sid);

rs = ps.executeQuery();

可以把?替換成變量。

而Statement只能用

int sid=1001;

Statement stmt = conn.createStatement();

ResultSet rs = stmt.executeQuery("select * from Cust where ID="+sid);

來實現(xiàn)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本節(jié)介紹Statement接口及其子類PreparedStatement和CallableStatement。 它...
    zlb閱讀 1,233評論 0 0
  • 本人的環(huán)境為Myeclipse10、MySQL5.7.15 本文包括:簡介JDBC編程步驟打通數(shù)據(jù)庫程序詳解—Dr...
    廖少少閱讀 4,346評論 7 39
  • JDBC簡介 SUN公司為了簡化、統(tǒng)一對數(shù)據(jù)庫的操作,定義了一套Java操作數(shù)據(jù)庫的規(guī)范,稱之為JDBC。JDBC...
    奮斗的老王閱讀 1,628評論 0 51
  • 1.PreparedStatement是預(yù)編譯的,對于批量處理可以大大提高效率. 也叫JDBC存儲過程2.使用 S...
    薛云龍閱讀 1,846評論 0 1
  • 最近越來越覺得朋友圈很無聊 有趣的人有趣的事很少 大量的微商代購貼 吃喝炫耀貼 網(wǎng)紅自拍貼 勵志雞湯轉(zhuǎn)發(fā)貼 還有各...
    _Molly閱讀 253評論 0 0

友情鏈接更多精彩內(nèi)容