java - Mybatis的Select语句变量是大小写不敏感的吗?
大家讲道理
大家讲道理 2017-04-17 17:38:57
[Java讨论组]

今天遇到一个狗血的问题
使用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
假如我要搜索的usernamewanglaoju
那么我搜wanglaoju,WANGLAOJU,Wanglaoju都可以出现相同的结果。
Mybatis的搜索是大小写不敏感的吗?
如果不是,那么我这个可能是什么原因?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(5)
巴扎黑

这个和Mybatis关系不大,说白了他到最后也是用JDBC驱动传递数据,和你手写JDBC传的SQL没啥区别。

这个是看你的数据库设置的,mysql默认是字段大小写不敏感的,通过配置文件可以修改。

PHP中文网

mysql默认是不区分大小的

阿神

例如,一般查询:

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      

);
就这么简单!

黄舟

mysql大小写敏感和系统有关,推荐个库,log4jdbc,来打印下执行的sql,直接复制到数据库跑下看结果

<dependency>
    <groupId>com.googlecode.log4jdbc</groupId>
            <artifactId>log4jdbc</artifactId>
    <version>1.2</version>
</dependency>
PHPz

因为你设置了这个吧

来个传送门 http://www.cnblogs.com/exmyth/p/3616672....

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号