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;


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM