我正在使用条件api来检查用户名是否存在。之后我正在检查密码。但用户名不区分大小写。我想让它区分大小写。
Criteria criteria2 = session.createCriteria(UserMaster.class);
criteria2.add(Restrictions.eq("userName", userName));
userDetails = (UserMaster)criteria2.uniqueResult();
if(userDetails != null) {
//logic goes here
}
任何帮助将不胜感激。
答案 0 :(得分:3)
如何比较字符串,取决于数据库的品牌和版本以及数据库的设置。某些数据库(例如Microsoft SQL Server)默认情况下以不区分大小写的方式比较字符串,而其他数据库则以区分大小写的方式比较字符串。
检查数据库的设置;查找您的特定品牌和数据库版本的文档,以了解如何更改此设置。
如果它确实是MS SQL Server,那么请查看此问题的示例:Sql Server check case sensitivity?
答案 1 :(得分:0)
我可以说一个简单的解决方案。但它不是一个直接的方式。使用MD5加密您的用户名并将其保存到数据库。比较用户名时,必须使用MD5加密给定的用户名,并将其与数据库中保存的用户名进行比较。但我不推荐这个解决方案,无论如何你也可以使用它。 :)
答案 2 :(得分:0)
我使用本机sql进行如下操作
Query query = session.createSQLQuery("select * from USER_MASTER where binary USER_NAME='"+userName+"'").addEntity(UserMaster.class);
userDetails = (UserMaster)query.uniqueResult();
if(userDetails != null) {
//code goes here
}