尝试在SQL中插入一个带有' 的数据,比如: I'm a boy
此时在向数据库中insert时就会出错!
解决方案是:写成如下方式:
insert into tab values(' I''m a boy') ;
后来由于需要将数据库进行迁移,需要读取数据后,然后重新写入数据,这个时候就需要将原语句中含有'的字段覆盖成''或者/',写了个方法转换一下;然后再调用就OK啦!!!!
代码如下:
public static String replace(String str)
...{
String result="";
String temp[]=str.split("'");
for(int x=0;x<temp.length;x++)
...{
System.out.println(temp[x]);
result+=temp[x]+"''";
}
return result.substring(0,result.lastIndexOf("'")-1);
}
...{
String result="";
String temp[]=str.split("'");
for(int x=0;x<temp.length;x++)
...{
System.out.println(temp[x]);
result+=temp[x]+"''";
}
return result.substring(0,result.lastIndexOf("'")-1);
}
然后再需要的时候调用就可以了
sql="insert into tab values ('"+rs.getString(1)"')";
connection.prepareStatement(sql.toString()).executeUpdate();
connection.prepareStatement(sql.toString()).executeUpdate();