项目中遇到内容是文本,可以随意输入各种字符,比如单引号(')、反斜杠(\)等
一、单引号问题(')
如果不处理,在查询时会出现如下的情况:
select * from table where a = 'let's go'
这样的sql会导致语句错误
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 's go%'' at line 1
对此,有两种处理方:
1.把需要的文本内容replace就可以了
a = a.replaceAll("'", "''");
或者使用commons-lang-2.6.jar中的StringEscapeUtils.escapeSql方法,使用如下:
a = StringEscapeUtils.escapeSql(a);
2.把需要的文本内容中出现的单引号(')进行转义
a = a.replaceAll("'","\\'");
二、反斜杠问题(\)
因为知道他代表转义,所以将转义符"\"增加为"\\",代码如下:假如字符串str含有反斜杠,则str=str.replaceAll("\\\\", "\\\\\\\\")。