9.preparedStatement與Statement的區(qū)別

1.推薦使用preparedStatement

  • 1.編碼更加簡便

statement方式
該方式比較麻煩 而且有字符串的拼接

String name ="zs";
int age =23;
String sql="insert into student (stuno,stuname) values('"+name+"',"+age+")";
stmt.executeUpdate(sql);

preparedStatement方式

String sql ="insert into student(stuno,stuname)values(?,?)";
pstmt =connection.prepareStatement(sql); //預(yù)編譯sql
pstmt.setString(1,name);
pstmt.setInt(2,age);
pstmt.executeUpdate();
  • 2.提高性能(有預(yù)編譯操作)
    需要重復(fù)增加100次

stmt.executeUpdate(sql); //執(zhí)行100次編譯100次 效率低

pstmt.exectuUpdate();//提前編譯好了
  • 3.安全(有效防止sql注入)
    分析:
//stmt:有被sql注入的風(fēng)險  例如:輸入用戶名:任意值 or 1=1-- 密碼:任意值
select * from login where uname='任意值' or 1=1 --' and upwd ='任意值';
因為1=1恒真  --在sql語句里是注釋的意思 相當(dāng)于把后面的密碼注釋掉了
語句變成 select count(*) from login;有返回值,所以會登陸成功
最后編輯于
?著作權(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)容

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