今天遇到一个狗血的问题使用springmvc+mybatis的时候如一个SELECT语句如此 <select id="list" parameterType="java.util.Map" resultMap="user"> SELECT * FROM user <trim prefix="where" prefixOverrides="AND"> <if test="username!=null"> username = #{username} </if> </trim> </select> 数据库为Mysql假如我要搜索的username为wanglaoju那么我搜wanglaoju,WANGLAOJU,Wanglaoju都可以出现相同的结果。Mybatis的搜索是大小写不敏感的吗?如果不是,那么我这个可能是什么原因?
5 回答
红糖糍粑
TA贡献1815条经验 获得超6个赞
这个和Mybatis关系不大,说白了他到最后也是用JDBC驱动传递数据,和你手写JDBC传的SQL没啥区别。
这个是看你的数据库设置的,mysql默认是字段大小写不敏感的,通过配置文件可以修改。
森栏
TA贡献1810条经验 获得超5个赞
例如,一般查询:
Sql代码 收藏代码
SELECT * FROM U WHERE name LIKE 'a%';
SELECT * FROM U WHERE name LIKE 'A%';
其结果是一样的,为了区分'A%'和'a%',可以这么做:
Sql代码 收藏代码
SELECT * FROM U WHERE binary name LIKE 'a%';
SELECT * FROM U WHERE binary name LIKE 'A%';
仅仅多了一个binary,就可以得到不同的结果!
当然,如果需要建表时强制区分大小写,可以这么写:
Sql代码 收藏代码
create table table_name(
name varchar (20) binary
);
就这么简单!
智慧大石
TA贡献1946条经验 获得超3个赞
mysql大小写敏感和系统有关,推荐个库,log4jdbc
,来打印下执行的sql,直接复制到数据库跑下看结果
<dependency>
<groupId>com.googlecode.log4jdbc</groupId>
<artifactId>log4jdbc</artifactId>
<version>1.2</version>
</dependency>
添加回答
举报
0/150
提交
取消