Statement和PrearedStatement的区别?

Statement

  • SQL语句是拼接形式
  • 会产生SQL注入问题

PreparedStatement

  • 预编译的Sql执行对象
  • 好处:
  • 代码可读性更高,不容易出错(因为statement拼接字符串又麻烦又易出错)
  • 带有预编译效果,执行效率比statement略高
  • 可以避免sql注入, 因为预编译的时候已经sql语句的逻辑固定,替换?进去的内容只能以值的形式体现,如果包含逻辑sql内容 则无效

  • sql中有变量就用preparedStatement    没有变量就用statement

  • 推荐使用PreparedStatement

  • SQL注入

    select count(*) from t_login where username='sdfsd' and password='' or '1'='1'
  • 这里的注入代码为 'or '1'='1      1=1为真则绕过验证,跟具体密码是什么没有关系
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值