java mysql處理帶單引號(')、反斜槓(\)等問題

項目中遇到內容是文本,可以隨意輸入各種字符,比如單引號(')、反斜槓(\)等

 

一、單引號問題(')

如果不處理,在查詢時會出現如下的情況:

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("\\\\", "\\\\\\\\")。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章