springboot Mybatis+Mysql查詢中文問題,語句在Mybatis無結果,控制檯有結果。

        昨天3個小時,被這個問題搞得難受,最後解決了,分享一下。網絡上講的很片面,並不能真正解決我的問題。

1. 語句沒有問題,MYSQL控制檯可以查詢出來,Mybatis無法查詢。

一定要先檢查springboot啓動時的鏈接數據庫的URL,編碼方式設置正確。

如果是application.properties,配置如下

spring.datasource.druid.url=jdbc:mysql://localhost:3306/videodb?useUnicode=true&characterEncoding=utf-8。

如果mybatis是單獨的配置文件,需要使用useUnicode=true&characterEncoding=utf-8。

確認數據庫的編碼格式,show variables like 'character_set_database';UTF8

2、啓動URL,數據庫編碼格式、SQL語句都沒有問題,仍然沒有查詢結果。-----我就是被這一條坑了。

查詢不到解決。

把裏面#{queryParam}更換成常量"劉",可以查詢出解決。因此懷疑是預編譯出的問題,所以把#更換爲$,解決問題。如下所示:

總結:當出現中文時,不要使用#預編譯,防注入自己寫代碼進行校驗。因爲預編譯中文時,可能會出現某些問題,我的就是這裏出的問題,但是在另一個微服務中,使用#號又沒有問題,偶現性,所以建議統一修改爲$。

 

 

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