0投票下降之星如何檢查在休眠標準中區分大小寫
我已經使用hibernate從mysql數據庫中獲取登錄信息。但問題是,例如,用戶名是數據庫中的'dhiraj',現在通過輸入用戶名登錄成功,但它也允許通過以大寫字母輸入用戶名來輸入,例如'DHIRAJ 」。我想限制它在數據庫中的位置。你能告訴我如何在冬眠狀態下實現這個功能嗎?
0投票下降之星如何檢查在休眠標準中區分大小寫
我已經使用hibernate從mysql數據庫中獲取登錄信息。但問題是,例如,用戶名是數據庫中的'dhiraj',現在通過輸入用戶名登錄成功,但它也允許通過以大寫字母輸入用戶名來輸入,例如'DHIRAJ 」。我想限制它在數據庫中的位置。你能告訴我如何在冬眠狀態下實現這個功能嗎?
我不認爲冬眠是這裏的問題。
您使用的數據庫是? (你應該重申你的問題,至少要添加你使用的數據庫實現)。
例如,默認情況下,mysql不區分大小寫。看看這裏:http://mysqldatabaseadministration.blogspot.com/2006/09/case-sensitive-mysql.html關於如何讓mysql做大小寫敏感的比較。
編輯: 就像我已經貼的鏈接說,你可以在表創建做,通過設置一個特殊的字符集,這樣的:
###########
# Start case sensitive collation example
###########
mysql> create table case_cs_test (word VARCHAR(10)) CHARACTER SET latin1 COLLATE latin1_general_cs;
Query OK, 0 rows affected (0.08 sec)
mysql> INSERT INTO case_cs_test VALUES ('Frank'),('Google'),('froogle'),('flickr'),('FlicKr');
Query OK, 5 rows affected (0.00 sec)
Records: 5 Duplicates: 0 Warnings: 0
mysql> SELECT * FROM case_cs_test WHERE word LIKE 'F%';
+---------+
| word |
+---------+
| Frank |
| FlicKr |
+---------+
4 rows in set (0.00 sec)
mysql> SELECT * FROM case_cs_test WHERE word LIKE 'f%';
+---------+
| word |
+---------+
| froogle |
| flickr |
+---------+
2 rows in set (0.00 sec)
###########
# end
###########
我使用下面的代碼,但它不檢查區分大小寫。 Restricted_User user =(Restricted_User)session.createCriteria(Restricted_User.class).add(Restrictions.eq(「user_id」,input.get(「username」))) .add(Restrictions.eq(「password」,input .get(「password」))) \t \t .uniqueResult(); – dhiraj 2010-04-29 07:54:46