java Statement与PreparedStatement在面对char遇到的问题

          公司的系统在进行安全检测时,遇到SQL注入的问题,因为公司的系统采用的Statement 执行SQL操作的,然后对数据又没有进行防SQL注入的处理,所以引发了这个问题!我负责解决这个问题,当时想的是把所有的Statement 改成PreparedStatement,因为PreparedStatement是自带防SQL注入的,但是在修改时,遇到了一个奇怪的问题,那就是把Statement 改成PreparedStatement之后,输入代码正常执行,可是就是查询不到数据,把SQL打印出来,放到数据库里执行,又可以查到数据!当时各种百度,各种调试,都百思不得其解,最后无意中看到数据库表字段的类型是char,突然想到是不是因为这个问题,然后果断在SQL的where条件的字段里都trim了,然后果断查询出数据!然后又做了几个小实验,得出一个结论,Statement应该会自己处理空格问题!但是PreparedStatement不会!改成varchar不会遇到这个问题!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值