欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mybatis使用MySQL模糊查詢時(shí)輸入中文檢索不到結(jié)果怎么辦

 更新時(shí)間:2016年07月08日 17:04:56   作者:DeveloperFanyl  
這篇文章主要介紹了Mybatis使用MySQL模糊查詢時(shí)輸入中文檢索不到結(jié)果的解決辦法的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下

項(xiàng)目開(kāi)發(fā)中,在做Mybatis動(dòng)態(tài)查詢時(shí),遇到了一個(gè)問(wèn)題:MySQL在進(jìn)行LIKE模糊查詢時(shí),輸入英文可以正常檢索出結(jié)果,但是輸入中文后檢索得到的結(jié)果為空。

由于是使用GET方式請(qǐng)求,所以為了確保中文不亂碼,在控制臺(tái)接收到請(qǐng)求參數(shù)后,對(duì)中文進(jìn)行了一次編碼。

try {
realName = new String(realName.getBytes("GBK"), "UTF-8");
} catch (UnsupportedEncodingException exception) {
logger.error("realName在進(jìn)行UTF-8編碼時(shí)出錯(cuò)," + exception.toString());
}

Mybatis動(dòng)態(tài)SQL映射,具體的SQL如下:

這里寫(xiě)圖片描述

首先使用模糊查詢檢索英文。啟動(dòng)項(xiàng)目,輸入英文“test”,按照英文內(nèi)容檢索得到的結(jié)果如下圖:

這里寫(xiě)圖片描述

我們可以看到SQL正常執(zhí)行,使用“test”總共檢索出2條結(jié)果,數(shù)據(jù)庫(kù)中對(duì)應(yīng)字段的內(nèi)容分別是張三test02和張三test,正常來(lái)說(shuō),如果我們輸入中文“張”也可以查詢到這兩條數(shù)據(jù),下面試試使用模糊查詢檢索中文。啟動(dòng)項(xiàng)目,輸入中文“張”,檢索得到結(jié)果如下圖:

這里寫(xiě)圖片描述

我們可以看到這里檢索出的結(jié)果是0條記錄,并且條件的中文內(nèi)容沒(méi)有亂碼,和預(yù)想中的并不一樣。復(fù)制同樣的SQL語(yǔ)句到SQLyog中執(zhí)行是可以正常檢索出結(jié)果的。

在使用SQLServer時(shí)并沒(méi)有出現(xiàn)過(guò)這樣的問(wèn)題,這次使用MySQL才出現(xiàn)這種情況,懷疑是在Mybatis配置數(shù)據(jù)源environment時(shí)SQLServer和MySQL配置的內(nèi)容有差異,仔細(xì)對(duì)比并上網(wǎng)查閱相關(guān)內(nèi)容后發(fā)現(xiàn),MySQL在進(jìn)行中文檢索時(shí),需要在jdbcURL后增加參數(shù)useUnicode=true&characterEncoding=UTF-8來(lái)指定編碼格式。

這里寫(xiě)圖片描述

完整的URL:

jdbc:mysql://127.0.0.1:3306/fanyl_web?useUnicode=true&characterEncoding=UTF-8

在修改了MySQL的jdbcURL后,啟動(dòng)項(xiàng)目,繼續(xù)輸入中文“張”,檢索得到結(jié)果如下:

這里寫(xiě)圖片描述

總共檢索出3條結(jié)果,至此Mybatis使用MySQL進(jìn)行模糊查詢時(shí)輸入中文檢索不到結(jié)果的問(wèn)題就解決了。

另外再附上MySQL的jdbcURL中常見(jiàn)的幾個(gè)參數(shù)說(shuō)明:

以上所述是小編給大家介紹的Mybatis使用MySQL模糊查詢時(shí)輸入中文檢索不到結(jié)果怎么辦,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評(píng)論