Mybatis的Select语句变量是大小写不敏感的吗?

今天遇到一个狗血的问题

使用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的搜索是大小写不敏感的吗?

如果不是,那么我这个可能是什么原因?


Helenr
浏览 3700回答 5
5回答

红糖糍粑

这个和Mybatis关系不大,说白了他到最后也是用JDBC驱动传递数据,和你手写JDBC传的SQL没啥区别。这个是看你的数据库设置的,mysql默认是字段大小写不敏感的,通过配置文件可以修改。

森栏

例如,一般查询:Sql代码 收藏代码SELECT * FROM U WHERE name LIKE 'a%';&nbsp;SELECT * FROM U WHERE name LIKE 'A%';&nbsp;其结果是一样的,为了区分'A%'和'a%',可以这么做:Sql代码 收藏代码SELECT * FROM U WHERE binary name LIKE 'a%';&nbsp;SELECT * FROM U WHERE binary name LIKE 'A%';&nbsp;仅仅多了一个binary,就可以得到不同的结果!当然,如果需要建表时强制区分大小写,可以这么写:Sql代码 收藏代码create table table_name(name&nbsp;varchar&nbsp;(20)&nbsp;binary);&nbsp;就这么简单!

凤凰求蛊

mysql默认是不区分大小的

智慧大石

mysql大小写敏感和系统有关,推荐个库,log4jdbc,来打印下执行的sql,直接复制到数据库跑下看结果<dependency>&nbsp; &nbsp; <groupId>com.googlecode.log4jdbc</groupId>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <artifactId>log4jdbc</artifactId>&nbsp; &nbsp; <version>1.2</version></dependency>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java