Mybatis中文模糊搜尋匹配不上的問題
阿新 • • 發佈:2019-01-08
由於在上班的時候會抽一些空閒的時間來做畢業設計,所以畢業設計經常會在不同環境下進行開發,遇到這個問題是我在公司機器上開發時候沒遇到的問題,而晚上下班回到家裡用自己的機器除錯的時候發現了,當我使用模糊搜尋的時候中文竟然沒用?只能使用英文,而在公司機器上是不存在這個問題的,我首先想到的是編碼問題,但是我一除錯,在後端Controller裡接收到並賦值到實體中的物件並不是亂碼,是沒有問題的。
<select id="selectAllComputers" resultMap="BaseResultMap" parameterType="com.tracy.gd.domain.Computer"> select <include refid="Base_Column_List" /> from gd_computers <where> 1=1 <if test="cptName != null" > AND cpt_name like CONCAT('%','${cptName}','%') </if> <if test="cptRam != null" > AND cpt_ram like CONCAT('%','${cptRam}','%') </if> <if test="cptCpu != null" > AND cpt_cpu like CONCAT('%','${cptCpu}','%') </if> <if test="cptOs != null" > AND cpt_os = #{cptOs,jdbcType=VARCHAR} </if> <if test="cptGraphicscard != null"> AND cpt_graphicscard like CONCAT('%','${cptGraphicscard}','%') </if> <if test="cptIslending != null" > AND cpt_islending = #{cptIslending,jdbcType=VARCHAR} </if> </where> </select>
語句自然也是沒問題,那麼問題出在哪裡了呢?上網查了一下資料,在jdbc連線資料庫的時候統一一下字符集就好了,即在url後面加上:
url=jdbc\:mysql\://localhost\:3306/databaseName?characterEncoding=UTF-8
這樣就可以進行中文的模糊搜尋了。