文档章节

记有一次使用mybatis时mysql不区分大小写

sluggarddd
 sluggarddd
发布于 2016/04/12 15:37
字数 443
阅读 76
收藏 0
点赞 1
评论 0

    是这样的,我们的数据库都是有专门的人管理的,所以一直也没怎么纠结他的配置,反正已经被别人优化过了。知道有一天,偶然的机会下发现查询过程中mysql在查询过程中,对where中的条件并没有区分大小写。因为还没有遇到这种情况,当时真是一副日了狗的表情。

    当时使用的是Spring+Mybatis,很自然,我把锅丢给了Mybatis,什么玩意儿!居然不区分大小写!然而找了大半圈发现并没有人因为使用了Mybatis出现了这个问题,也没有在文档中找到查询时对于参数的限制。

    于是就上segmentfault上提问了,然后就忘掉了这件事,今天登陆发现有回答解决我的疑惑,所以来记录一下。

    问题出在mysql的设置身上,当时也并非没有怀疑是mysql的问题,然而一样是搜索无果放弃了这个因素。

    好吧,原因也很简单,只是顺便发发牢骚。

    其实跟建立数据库的时候选择的排序规则有关。

    utf8_bin 将字符串中的每一个字符用二进制数据存储,区分大小写。

    utf8_genera_ci 不区分大小写,ci为case insensitive的缩写,即大小写不敏感。

    utf8_general_cs 区分大小写,cs为case sensitive的缩写,即大小写敏感。

    如果想自在几个字段上用改变这些特性,设置列的排序规则即可。

    相信碰到问题的已经恍然大悟了。

    接下来自己调试测试吧。

© 著作权归作者所有

共有 人打赏支持
sluggarddd
粉丝 7
博文 14
码字总数 11821
作品 0
程序员
Mybatis 分页插件 4.0.2 发布

Mybatis 分页插件 - PageHelper 如果你也在用Mybatis,建议尝试该分页插件,这一定是最方便使用的分页插件。 分页插件支持任何复杂的单表、多表分页,部分特殊情况请看重要提示。 想要使用分...

Liuzh_533
2015/11/03
7.1K
14
mybatis自增主键配置

mybatis自增主键配置 mybatis进行插入操作时,如果表的主键是自增的,针对不同的数据库相应的操作也不同。基本上经常会遇到的就是 Oracle Sequece 和 MySQL 自增主键,至于其他的手动生成唯一...

李永china
2016/05/20
4
0
linux下Mysq表名的大小写问题解析

这些天把项目都转移到新的Linux服务器上来,发现总是报无法找到表的错误。 ssh进去mysql下: 然后发现卧槽有啊。。。 回来发现输出信息均为未找到“TUSER”大写字样。回来想可能是用mybatis...

aijfanta
2016/04/16
88
0
MyBatis:获取插入记录的自增主键

我们知道MySql中主键可以设成auto_increment,也就是自增主键,每当新增一条记录,主键值自动加1。 在MyBatis中,执行insert,返回值为受影响的语句行数,此操作跟JDBC一致。 但是如果应用中...

kolbe
2015/09/30
3.4K
1
mysql插入数据后返回自增ID的方法,last_insert_id(),selectkey

mysql插入数据后返回自增ID的方法 mysql和oracle插入的时候有一个很大的区别是,oracle支持序列做id,mysql本身有一个列可以做自增长字段,mysql在插入一条数据后,如何能获得到这个自增id的...

飞翼
2016/12/28
27
0
mybatis 批量更新

此前的方案在做批量时使用mybatis提供的batch model,该模式下将推迟所有的update(包括insert和delete)语句直到提交事务或者遇到一次查询语句 上述代码可以看出当使用batch模式时如果sql和...

Mr_Qi
2016/10/28
271
0
Mysql大小写敏感的问题

一、1 CREATE TABLE NAME(name VARCHAR(10)); 对这个表,缺省情况下,下面两个查询的结果是一样的: SELECT FROM TABLE NAME WHERE name='clip'; SELECT FROM TABLE NAME WHERE name='Clip'......

lw_tao
2015/03/02
0
0
Mysql大小写敏感的问题

一、1 CREATE TABLE NAME(name VARCHAR(10)); 对这个表,缺省情况下,下面两个查询的结果是一样的: SELECT * FROM TABLE NAME WHERE name='clip'; SELECT * FROM TABLE NAME WHERE name='C......

zhwj407906450
2014/10/20
0
0
mac 升级10.10 MySQL安装失败,求解

Yosemite 是全新安装的,不是升级上来的 硬盘是使用区分大小写的方式格的盘 mysql安装的是 mysql-5.6.21-osx10.9-x86_64.dmg (官方没有支持10.10的版本) 安装最后总是提示安装失败。 你们谁有...

金三胖
2014/10/18
4.7K
4
极简Mybatis之旅(一):CRUD

摘要 最近在研究mybatis框架,作为一个优秀ORM框架,mybatis很多优秀的设计思想值得借鉴。 mybatis的配置文件里,主要是config和mapper。config定义了全局参数:数据源类型(POOL, UNPOOLED,...

classfly
04/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

spring boot中swagger2使用

1.pom.xml中添加 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version>......

说回答
5分钟前
0
0
tomcat虚拟路径的几种配置方法

tomcat虚拟路径的几种配置方法 一般我们都是直接引用webapps下面的web项目,如果我们要部署一个在其它地方的WEB项目,这就要在TOMCAT中设置虚拟路径了,Tomcat的加载web顺序是先加载 $Tomcat_ho...

Helios51
17分钟前
1
0
Mac 安装jupyter notebook的过程

MAC台式机 python:mac下自带Python 2.7.10 1.先升级了pip安装工具:sudo python -m pip install --upgrade --force pip 2.安装setuptools 工具:sudo pip install setuptools==33.1.1 3.安装......

火力全開
23分钟前
0
0
导航守卫解释与例子

“导航”表示路由正在发生改变。 正如其名,vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航。有多种机会植入路由导航过程中:全局的, 单个路由独享的, 或者组件级的。 记住...

tianyawhl
23分钟前
0
0
Java日志框架-logback配置文件多环境日志配置(开发、测试、生产)(原始解决方法)

说明:这种方式应该算是最通用的,原理是通过判断标签实现。 <!-- if-then form --> <if condition="some conditional expression"> <then> ... </then> </if> ......

浮躁的码农
37分钟前
1
0
FTP传输时的两种登录方式和区别

登录方式 匿名登录 用户名为: anonymous。 密码为:任何合法 email 地址。 授权登录 用户名为:用户在远程系统中的用户帐号。 密码为:用户在远程系统中的用户密码。 区别 匿名登录 只能访问...

寰宇01
38分钟前
0
0
plsql developer 配置监听(不安装oracle客户端)

plsql developer 配置监听(不安装oracle客户端)

微小宝
45分钟前
1
0
数据库(分库分表)中间件对比

本人的宗旨就是,能copy的,绝对不手写。 分区:对业务透明,分区只不过把存放数据的文件分成了许多小块,例如mysql中的一张表对应三个文件.MYD,MYI,frm。 根据一定的规则把数据文件(MYD)和索...

奔跑吧代码
49分钟前
2
0
Netty与Reactor模式详解

在学习Reactor模式之前,我们需要对“I/O的四种模型”以及“什么是I/O多路复用”进行简单的介绍,因为Reactor是一个使用了同步非阻塞的I/O多路复用机制的模式。 I/O的四种模型 I/0 操作 主要...

hutaishi
56分钟前
1
0
【2018.07.16学习笔记】【linux高级知识 20.16-20.19】

20.16/20.17 shell中的函数 20.18 shell中的数组 20.19 告警系统需求分析

lgsxp
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部