項目中遇到內容是文本,可以隨意輸入各種字符,比如單引號(')、反斜槓(\)等
一、單引號問題(')
如果不處理,在查詢時會出現如下的情況:
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("\\\\", "\\\\\\\\")。