将一个字符串插入数据库,要求在字符串中含用单引号时也能正常插入,有什么好方法吗?!!!!!!!!!!!!! 有一个字符串string userid;userid="uiy'kop";字符我是随意输入的,在对数据库进行插入操作时将'作为一个正常的字符输入。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用PreparedStatement来执行语句就没有问题!如果非要用Statement来执行的话可能比较麻烦,因为拼接后的SQL语句要符合各种数据库的标准,这样好象对移植不太有利!假设是用ORACLE数据库你就可以把'直接替换成''就可以了,转换如下:userid=userid.replaceAll("'","''"); 两种方法 1 两个单引号可以作为一个单引号使用 既''代表‘2 用replace 替换 用PreparedStatement 和其setXXX()方法来作数据库操作 to wutzwjt() 写一下具体的代码可以吗 用法: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; } 比入你要求插入到数据库中的字符串变量为str你可以这样写str = str.replaceAll("'","'''");这样应该就可以了 在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的时候的值还是'',此时再想转回 ',要怎样才能完成啊? to zj_pht(Apollo)只能转为双数的,不然会报错的。 要是含有",又要怎么作啊,我也试着用replaceAlluserID=userID.replaceAll('"','""'),报错说userID是string,replaceall是string to string,不是char to char各位有什么好办法吗?谢谢 晕啊,从楼主到楼上的,都没用过java.sql.PreparedStatement吗???!!!insert into abc (x,y,z) values (?, ?, ?); 人家已经告诉你用PreparedStatement了,不要相信那些使用replace的方法的人 JAVA WEB 如何实现多纵轴曲线图 新手学javaweb,请大侠帮忙看看代码错误 关于页面中的打印按钮点击后ie地址栏中的地址显示与之前一致的实现问题 js和浏览器的问题 急用 javascript选择多行 如何关闭IE窗口? jsp中的文件问题?? jb9向导生成一jsp程序,居然编译不通过 我要被Clob折磨疯了,请帮帮我。 基于websocket的多人实时聊天效果问题 字符函数 WEB工程安装失败,WEB工程不能加载到容器(tomcat4.1.24)
如果非要用Statement来执行的话可能比较麻烦,因为拼接后的SQL语句要符合各种数据库的标准,这样好象对移植不太有利!
假设是用ORACLE数据库你就可以把'直接替换成''就可以了,转换如下:
userid=userid.replaceAll("'","''");
2 用replace 替换
写一下具体的代码可以吗
{
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;
}
你可以这样写
str = str.replaceAll("'","'''");
这样应该就可以了
public void setUserID(String userID) {
if (userID.indexOf("'")!=-1){
userID=userID.replaceAll("'","''");}
this.userID = userID;
}
有以上的代码,我从user.jsp输入 '可以转为''并将信息传入user2.do,但从user2.do点击“返回”回到user1.jsp的时候的值还是'',此时再想转回 ',要怎样才能完成啊?
只能转为双数的,不然会报错的。
userID=userID.replaceAll('"','""'),
报错说userID是string,replaceall是string to string,不是char to char各位有什么好办法吗?谢谢