HQL 简单的几种带条件查询方法

转载 2016年11月03日 00:19:17

条件查询 
 * 可以采用拼字符串的方式传递参数
 * 可以采用 ?来传递参数(索引从0开始)
 * 可以采用 :参数名 来传递参数
 * 如果传递多个参数,可以采用setParamterList方法
 * 在hql中可以使用数据库的函数,如:date_format

 

第一种:可以拼字符串
   List students = session.createQuery("select s.id, s.name from Student s where s.name like '%1%'").list();

 

第二种:可以使用?方式传递参数

    //参数的索引从0开始
   //传递的参数值,不用单引号引起来
   //注意方法链编程
   List students = session.createQuery("select s.id, s.name from Student s where s.name like ?")
               .setParameter(0, "%1%")
               .list();

 

第三种:参数名称 的方式传递参数值
   List students = session.createQuery("select s.id, s.name from Student s where s.name like :myname")
               .setParameter("myname", "%1%")
               .list();

 

第四种:参数名称 的方式传递参数值

  List students = session.createQuery("select s.id, s.name from Student s where s.name like :myname and s.id=:myid")
               .setParameter("myname", "%1%")
               .setParameter("myid", 12)
               .list();

 

第五种:支持in,需要使用setParameterList进行参数传递

   List students = session.createQuery("select s.id, s.name from Student s where s.id in(:myids)")
         .setParameterList("myids", new Object[]{1, 2, 3, 4, 5})
               .list();

 

第六种:在hql中可以使用数据库的函数,如:date_format

//查询2010年2月创建的学生
   List students = session.createQuery("select s.id, s.name from Student s where date_format(s.createTime, '%Y-%m')=?")
         .setParameter(0, "2010-02")
               .list();

 

第七种:between

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
   
   //查询2010-01-10到2010-02-15创建的学生
   List students = session.createQuery("select s.id, s.name from Student s where s.createTime between ? and ?")
         .setParameter(0, sdf.parse("2010-01-10 00:00:00"))
         .setParameter(1, sdf.parse("2010-02-15 23:59:59"))
               .list();

Hibernate HQL基础 限定查询条件(这里面有各种条件查询)

在HQL中可以使用表达式完成指定的运算或者作为限制查询结果的条件。如下表所示 |---------------------------------------------------------...

HQL条件查询和原生SQL查询

1.条件查询  (1)拼字符串 List students=session.createQuery("select id,name from Student where name like '%1...
  • yyywyr
  • yyywyr
  • 2011年08月14日 20:45
  • 2290

HQL语句--where(限制)

where子句:逻辑表达式。用来设置查询的条件来限制返回的查询结果。比较运算:将持久化类的属性与给定的查询条件来进行比较。 比较运算符: =、、、>=、 x is null; xnull -> x ...
  • syf1970
  • syf1970
  • 2016年09月01日 15:07
  • 2946

HQL 简单的几种带条件查询方法

▼ 条件查询   * 可以采用拼字符串的方式传递参数  * 可以采用 ?来传递参数(索引从0开始)  * 可以采用 :参数名 来传递参数  * 如果传递多个参数,可以采用se...

hibernate中hql查询

package com.tudou.hibernates.t1; import java.util.List; import org.hibernate.Query; import org.hib...
  • yaerfeng
  • yaerfeng
  • 2011年11月14日 18:07
  • 21034

HQL多对多条件查询

在数据库joblog中用到了3个表:student(学生表)、course(课程表)和sc(选课表)。这些表的详细信息见6.1.1节“示例中用到的默认数据库表和数据”。在现实模型中,一个学生可以选择多...

hibernate多条件动态查询

查询条件往往有很多,某些查询条件也不能确定,如果使用上面的方法,那么就要写大量基本重复的查询方法.为了简化工作量,封装了一种通用的查询方法,**将查询条件封装到一个Map<String, Object...

5.hql条件查询:总结

hibernate查询语言hql 在hql中关键字不区分大小写,通常小写,类的名称和属性名称必须区分大小写 1、简单属性查询【重要】  * 单一属性查询,返会属性结果集列表,元素类型和实体类中相应的...

Hibernate之关于HQL语句参数的绑定

参数绑定优点: (1)安全性   防止用户恶意输入条件和恶意调用存储过程 (2)提高性能   底层采用JDBC的PreparedStatement预定义sql功能,后期查询直接从缓存中获取执行 一...
  • yhl_jxy
  • yhl_jxy
  • 2016年03月15日 13:31
  • 4924

Hibernate HQL复杂查询总结

在用到hiberante的复杂的查询时在网上搜索到的这篇博客,感觉很不错转载过来日后碰到其他复杂查询时备用   1. 查询整个映射对象所有字段 Java代码 //直接fro...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HQL 简单的几种带条件查询方法
举报原因:
原因补充:

(最多只允许输入30个字)