软件编程
位置:首页>> 软件编程>> java编程>> Mybatis查询时,区分大小写操作

Mybatis查询时,区分大小写操作

作者:旧单车  发布时间:2021-08-11 14:10:54 

标签: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)这样的字段进行去区分

来源:https://blog.csdn.net/weixin_43001280/article/details/82802308

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com