Java区分大小写和mysql不区分大小写

在开发的过程中遇到了一个小坑,特此记录。在根据用户名查询客户的时候,比如zhangsan和ZHANGSAN同时查出来,
原来是Java区分大小写和mysql不区分大小写造成的。
不要轻易修改数据库。
解决步骤:
1. 在插入用户名的时候直接全部插入为小写,不管用户输入的是大写还是小写,直接转化为小写(当时的开发规定),
//toLowerCase()方法将String转换为小写
String loginName=userBean.getLoginName().toLowerCase();
2.如果2个用户名一样的话,可以字母加数字的方法解决,zhangsan1和zhangsan.插入的时候进行判断。

解决办法:(咨询大牛,实测得到的结论)
1.在查询的时候解决(binary)
select * from user where binary loginname="zhangsan"
select * from user where binary loginname="ZHANGSAN"

2 .在建表的时候解决(binary)
CREATE TABLE ceshi (
id int(2) NOT NULL,
name varchar(4) binary NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

posted @ 2019-03-04 18:48  大头的java梦  阅读(1640)  评论(0)    收藏  举报