需要对name的值进行处理,在每个“'”的前面都加上“\”。

解决方案 »

  1.   

    添加对应的sql语句转义符号吧
    这得先对name进行处理,
    比如在oracle中,须将name字串中所有的“'”符号全部转换成“''”,即添加一个转义符号“'”,比如
    String name = "your's";
    处理……具体处理可以使用repalceAll方法等
    name = "your''s" 
    再执行处理即可
      

  2.   

    to namowen(寒号不已):
      sql语句中的转义符和java中的并不一样,而且若不是使用标准sql的话,不通数据库对应的sql语句中不同字段对应的转义符都有可能是不一样的说!
      具体的还得自个多多在数据库环境下测试才行
      

  3.   

    将SQL语句按字符分析,将' 转化为 \'
      

  4.   

    谢谢各位!
    可能我没有说清楚。这个语句转换我是知道的。我们有很多实体类,又没有用ejb来做,导致很多sql需要自己写。而类中String格式的属性是非常多的,要拼装sql之前,对于所有属性进行语句转换的工作量太大了。我想各位前辈做过B/S架构的东东,也可能以前遇到过这种问题,有没有改动量最小的解决办法。如在set***()方法中转换?(这个量也太大了)
      

  5.   

    用PreparedStatement应该没这个问题吧
      

  6.   

    我做过的项目也遇到过你的问题,我用过的最简单的方法就是在所有页面中包含诸如以下javascript语句:document.onkeypress = kj;
    function kj(){
        if (event.keyCode==39)
           return false;
    }直接在客户端限制输入单引号,该语句被我用htc封装了,所有页面的body全具有该限制了。哈哈简单吧?一分钟搞定!对于文本框粘贴也可编一个onbeforepast的函数来禁止粘贴单引号。