在使用mybitis 查詢mysql數據庫的時候 用到了漢字作爲查詢條件,sql語句在navcat裏面可以查詢的到但是在項目裏確不行了
1. 以下是項目中的SQL 文件。
因爲where條件中傳輸進來的參數是漢字,所以在查詢的時候,加上 where 子句返回的結果就爲空。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.lin.dao.OperatingStatusDao">
<!--查詢指標體系準則層元素,用於打分並計算權重 -->
<select id="selectIndicator_level" resultType="com.lin.domain.Value">
select Indicator_level as value from t_yxzt_indexsystem where criterion_level= #{selectName,jdbcType=VARCHAR}
</select>
</mapper>
2. 控制檯輸出
在控制檯輸出,拼音、數字都的可以查到,漢字的查不到。初步判斷是字符的編碼問題。
3.修改 MySQL 的字符編碼形式
隱約記得在安裝 MySQL 的時候,沒有改變字符編碼,選擇了默認的latin1,這裏應該就是問題的出處
- 找到 MySQL 的的安裝目錄
默認安裝路徑爲:C:\Program Files\MySQL\MySQL Server 5.5,選擇 my.ini 文件。
修改其中的兩個位置,將下圖中用紅圈圈出的地方改爲 utf8 即可
4. 重啓 MySQL
用管理員方式啓動 cmd 窗口,執行如下語句:
- 使用命令語句“net stop mysql” 停止 mysql 服務
- 使用命令語句“net start mysql” 啓動 mysql 服務