hibernate hql语句怎么在查询时区分大小写?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hibernate hql语句怎么在查询时区分大小写?相关的知识,希望对你有一定的参考价值。
如题,现在我设置了用户名和密码框,在登录时查询输入的用户名在sql server数据库是不是存在(大小写很重要),但是我根据用户名从数据库查询是不区分大小写的怎么办?用的hql语句!!
不能更改表结构额
【补充】
Hibernate拥有一种功能非常强大的查询语言,这种语言被有意得与SQL非常相似,便于开发人员掌握。HQL完全是面向对象的,可以用来过程多态、继承、关联等关系。 参考技术A HQL语句是要区分大小写的。。。 参考技术B public ZjSystemUser get(ZjSystemUser obj)
Session s = HibernateSessionFactory.getSession();
StringBuilder sql = new StringBuilder();
sql.append(" from ZjSystemUser where 1=1 ");
sql.append(" and USER_ID = '"+obj.getUserId()+"' and PASSWORD='"+obj.getPassword()+"'");
Query q = s.createQuery(sql.toString());
ArrayList<ZjSystemUser> list = (ArrayList<ZjSystemUser>)q.list();
if(list!=null && list.size()>0)
return list.get(0);
else
return null;
User 实体类,里面有USER_ID ,PASSWORD两个属性,
关键在拼hql时,你查的时候用“= ”,不要用“like”,你试试看,本回答被提问者采纳 参考技术C 字段的名字是不区分大小写的,值是区分的呀,你在仔细查找下代码,或者发出来看看
Hibernate 检索方式之 HQL 检索方式
HQL(Hibernate Query Language) 是面向对象的查询语言,它和 SQL 查询语言有些相似。在 Hibernate 提供的各种检索方式中,HQL 是使用最广的一种检索方式,它有如下功能:
-在查询语句中设定各种查询条件
-支持投影查询,即检索出对象的部分属性
-支持分页查询
-支持连接查询
-支持分组查询,允许使用 HAVING 和 GROUP BY 关键字
-提供内置聚集函数,如 sum()、min()、max()
-支持子查询
-支持动态绑定参数
-能够调用用户定义的 SQL 函数或标准的 SQL 函数
HQL 检索方式包括以下步骤:
-通过 Session 的 createQuery()方法创建一个 Query 对象,它包括一个 HQL 查询语句。HQL 查询语句中可以包含命名参数
-动态绑定参数
-调用 Query 相关方法执行查询语句
Query 接口支持方法链编程风格,它的 setXxx()方法返回自身实例,而不是 void 类型
HQL vs SQL:
-HQL 查询语句是面向对象的,Hibernate 负责解析 HQL 查询语句,然后根据对象-关系映射文件中的映射信息,把 HQL 查询语句翻译成相应的 SQL 查询语句。HQL 查询语句中的主体是域模型中的类及类的属性
-SQL 查询语句是与关系数据库绑定在一起的,SQL 查询语句中的主体是数据库表及表的字段
绑定参数:
-Hibernate 的参数绑定机制依赖于 JDBC API 中的 PreparedStatement 的预定义 SQL 语句功能
-HQL 参数绑定有两种形式:
--按参数名字绑定:在 HQL 查询语句中定义命名参数,命名参数以“:”开头。
--按参数位置绑定:在 HQL 查询语句中用“?”来定义参数位置
-相关方法:
--setEntity():把参数与一个持久化类绑定
--setParameter():绑定任意类型的参数。该方法的第三个参数显式指定 Hibernate 映射类型
HQL 采用 ORDER BY 关键字对查询结果排序
// 1. 创建 Query 对象 String hql = "FROM Employee e WHERE e.id < ?"; Query query = session.createQuery(hql); // 2. 绑定参数 query.setInteger(0, 130); // 3. 执行查询 List<Employee> employees = query.list(); System.out.println(employees.size());
以上是关于hibernate hql语句怎么在查询时区分大小写?的主要内容,如果未能解决你的问题,请参考以下文章
hibernate 一对多update操作的hql语句怎么写?
hibernate hql查询 与Criteria 查询语句区别和效率