1. 程式人生 > 程式設計 >Mybatis查詢時,區分大小寫操作

Mybatis查詢時,區分大小寫操作

登陸的時候,發現輸入賬號的不同大小寫竟然能夠登陸。

Mybatis查詢程式碼如下

<select id="selectById" parameterType="java.lang.String" resultType="com.deep.web.func.entity.UserData"> 
  select <include refid="sql_columns" /> from <include refid="table_name" /> 
  <where>
   userName=#{userName} 
  </where>
 </select>

通過多次斷點查詢後,發現是上面的xml檔案沒寫對。

userName=#{userName}

這樣寫不匹配大小寫。

解決辦法,加個BINARY

 <select id="selectById" parameterType="java.lang.String" resultType="com.deep.web.func.entity.UserData"> 
  select <include refid="sql_columns" /> from <include refid="table_name" /> 
  <where>
   BINARY userId=#{uid} 
  </where>
 </select>

補充知識:mybatis不區分大小寫問題

起因是在java的實體類裡定義了兩個相同的欄位名字只是區分了其中一個字母的大小寫,如(cellcode,cellCode)在Myatis的sql語句中進行查詢,觀看了前臺返回資料發現與預想的資料不一樣,後來發現是因為mybatis中不區分大小寫造成的程式小bug,

在應用中一定要注意在實體類中不能定義類似與(cellcode,cellCode)這樣的欄位進行去區分

以上這篇Mybatis查詢時,區分大小寫操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。