有一个字符串
string userid;
userid="uiy'kop";
字符我是随意输入的,在对数据库进行插入操作时将'作为一个正常的字符输入。

解决方案 »

  1.   

    使用PreparedStatement来执行语句就没有问题!
    如果非要用Statement来执行的话可能比较麻烦,因为拼接后的SQL语句要符合各种数据库的标准,这样好象对移植不太有利!
    假设是用ORACLE数据库你就可以把'直接替换成''就可以了,转换如下:
    userid=userid.replaceAll("'","''");
      

  2.   

    两种方法 1 两个单引号可以作为一个单引号使用 既''代表‘
    2 用replace 替换
      

  3.   

    用PreparedStatement 和其setXXX()方法来作数据库操作
      

  4.   

    to wutzwjt() 
    写一下具体的代码可以吗
      

  5.   

    用法:replaceWithStr(strTemp, "'", "''");    实现:public static String replaceWithStr(String strSource, String strCh, String strReplace)
        {
            int iFlag = 0;
            int iLen = strSource.length();
            String str1 = "", strTemp = "";
            String str2 = strSource;
            int iAddr = 0;
            while (iFlag == 0)
            {
                if (str2.indexOf(strCh) != -1)
                {
                    strTemp = str2.substring(0, str2.indexOf(strCh));
                    str1 = str1 + strTemp.concat(strReplace);
                    iAddr = str2.indexOf(strCh) + strCh.length();
                    str2 = str2.substring(iAddr, str2.length());
                    if (iAddr > iLen - 1)
                    {
                        iFlag = 1;
                    }
                }
                else
                {
                    iFlag = 1;
                }
            }
            str1 = str1 + str2;
            return str1;
        }
      

  6.   

    比入你要求插入到数据库中的字符串变量为str
    你可以这样写
    str = str.replaceAll("'","'''");
    这样应该就可以了
      

  7.   

    在userform.java中
    public void setUserID(String userID) {
    if (userID.indexOf("'")!=-1){
    userID=userID.replaceAll("'","''");}
    this.userID = userID;
    }
    有以上的代码,我从user.jsp输入 '可以转为''并将信息传入user2.do,但从user2.do点击“返回”回到user1.jsp的时候的值还是'',此时再想转回 ',要怎样才能完成啊?
      

  8.   

    to zj_pht(Apollo)
    只能转为双数的,不然会报错的。
      

  9.   

    要是含有",又要怎么作啊,我也试着用replaceAll
    userID=userID.replaceAll('"','""'),
    报错说userID是string,replaceall是string to string,不是char to char各位有什么好办法吗?谢谢
      

  10.   

    晕啊,从楼主到楼上的,都没用过java.sql.PreparedStatement吗???!!!insert into abc (x,y,z) values (?, ?, ?);
      

  11.   

    人家已经告诉你用PreparedStatement了,不要相信那些使用replace的方法的人