通常是用PreparedStatement的setString来设置字符型参数就能防止, 我看了JTDS的源码, 他的做法是把一个单引号替换成两个单引号,但是jtds是针对sqlserver和sybase的, 不知道oracle的数据库驱动是如何做的呢, 我一直都搞不到oracle的jdbc驱动源码, 请大家帮帮忙啊

解决方案 »

  1.   

    lz想要oracle的jdbc驱动源码?也太过分了吧,oracle据我所知不是开源的吧,呵呵
      

  2.   

    不是吧, 驱动而已, oracle也太抠门了吧, 那有人知道oracle的驱动是如何过滤字符型参数的吗, 是将一个单引号弄成两个单引号吗
      

  3.   

    我就是打算自己写个过滤, 我只是想知道oracle自己是怎么过滤的
      

  4.   

    PreparedStatement 这个在oracle不能防止SQL注入式攻击?
      

  5.   

    可以, 但是在有些地方需要直接拼SQL语句, 所以我才要知道他的过滤原理