關於mybatis只能查詢英文,不能查詢中文的問題

近日使用mybatis做項目的時候碰到的問題,使用mybatis對數據進行模糊查詢的時候,只能查詢英文,而不能查詢中文,即:輸入參數爲英文就成功,中文就查詢不到結果。

在網上查了許多資料,總結下來就是以下幾種情況:

問題一:

jsp頁面,項目的properties,配置文件,數據庫等的編碼格式是否統一都爲UTF-8。

解決方法:修改各文件編碼格式,統一爲UTF-8

問題二:

數據庫安裝後,編碼沒設置。

解決方法:修改配置文件,最簡單的完美修改方法,修改mysql的my.cnf文件中的字符集鍵值(注意配置的字段細節):

1、在[client]字段里加入default-character-set=utf8,如下:
1
[client]
2
port = 3306
3
socket = /var/lib/mysql/mysql.sock
4
default-character-set=utf8


2、在[mysqld]字段里加入character-set-server=utf8,如下:
1
[mysqld]
2
port = 3306
3
socket = /var/lib/mysql/mysql.sock
4
character-set-server=utf8


3、在[mysql]字段里加入default-character-set=utf8,如下:
1
[mysql]
2
no-auto-rehash
3
default-character-set=utf8
修改完成後,service mysql restart重啓mysql服務就生效。

再一查詢OK了

問題三:

數據源在配置時,編碼轉換格式配置出錯。

解決辦法:

修改mybatis配置文件中配置數據源模塊:

<property name="url" value="jdbc:mysql://localhost:3306/cloth?useUnicode=true&amp;characterEncoding=UTF-8"/>

這裏需要注意,一般時候,我們都習慣寫成<property name="url" value="jdbc:mysql://localhost:3306/cloth?useUnicode=true&characterEncoding=UTF-8"/>,但是在XML文件中,它的編碼規則決定要這麼變換。

在xml文件中有以下幾類字符要進行轉義替換:

&lt;

<

小於號

&gt;

>

大於號

&amp;

&

&apos;

'

單引號

&quot;

"

雙引號


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