天天看點

MyBatis傳遞中文參數傳回值為空

1. 現象

Spring+Mybatis項目,之前一直運作的好好的,修改了下配置檔案後發現一個select查詢一直傳回空結果。

2. 跟蹤

通過不斷的調試發現,一旦傳遞的參數裡面有中文參數,select語句傳回就是空值,基本上可以斷定是編碼問題

3. 定位

看了下SVN的代碼修改記錄

之前mysql連接配接字元串是寫在spring配置檔案裡面的如下:

<bean id="dataSource"

 class="com.alibaba.druid.pool.DruidDataSource"

 p:url="jdbc:mysql://127.0.0.1:3306/test_db?useUnicode=true&amp;characterEncoding=utf8">

</bean>

現在是轉移到properties配置檔案中如下:

 class="com.alibaba.druid.pool.DruidDataSource" init-method="init"

 destroy-method="close">

 <!-- 基本屬性 url、user、password -->

 <property name="url" value="${mysql_url}" />

</bean>

然後配置檔案:

#mysql

jdbc:mysql://127.0.0.1:3306/test_db?useUnicode=true&amp;characterEncoding=utf8

那麼問題應該就出在上面的配置檔案中,編碼指定部分應該是未生效

4. 解決

在xml寫的時候,因為是在字元串裡面,需要寫&amp;表示&,但是在檔案中應該是不用的,是以配置properties應為:

jdbc:mysql://127.0.0.1:3306/test_db?useUnicode=true&characterEncoding=utf8

OK,測試下問題解決