JDBC的Statement和PreparedStatement不同的操作流程

1)执行sql效率区别

Statement对象:执行sql,每一次都需要将sql语句发送一次,相对于PreparedStatement对象效率低,不用它的原因 数据库的性能优化-->减少服务器的交互次数(和数据库的交互次数减少)

        PreparedStatement对象:预编译对象:执行的参数化的sql,直接先发送给数据库,数据库会进行校验(参数类型,以及参数的字段是哪一列),并且保存在预编译对象中,可以不断的重新赋值;执行sql效率高!

2)是否存在sql注入的区别

Statement对象:执行的sql语句,都是静态化sql,sql存在字符串拼接,就会导致可能出现sql注入,非常不安全!

举例

select * from user where username = ‘ ” + 变量名 + " ' and password ' " + 值 + " ' ;

PreparedStatement预编译对象:每次是在自己内存中直接赋值对应的值,sql语句永远是占位符号?不会造成sql注入问题,非常安全的!

select * from user where username = ? and password = ? ;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值