1. 程式人生 > >Mybatis中文模糊搜尋匹配不上的問題

Mybatis中文模糊搜尋匹配不上的問題

由於在上班的時候會抽一些空閒的時間來做畢業設計,所以畢業設計經常會在不同環境下進行開發,遇到這個問題是我在公司機器上開發時候沒遇到的問題,而晚上下班回到家裡用自己的機器除錯的時候發現了,當我使用模糊搜尋的時候中文竟然沒用?只能使用英文,而在公司機器上是不存在這個問題的,我首先想到的是編碼問題,但是我一除錯,在後端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 
這樣就可以進行中文的模糊搜尋了。