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