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&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&characterEncoding=utf8
那麼問題應該就出在上面的配置檔案中,編碼指定部分應該是未生效
4. 解決
在xml寫的時候,因為是在字元串裡面,需要寫&表示&,但是在檔案中應該是不用的,是以配置properties應為:
jdbc:mysql://127.0.0.1:3306/test_db?useUnicode=true&characterEncoding=utf8
OK,測試下問題解決