- 浏览: 455773 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
飞天奔月:
我来个简单点的代码 使用 LinkedHashSetpubli ...
ArrayList去重 -
飞天奔月:
public static <T> List< ...
ArrayList去重 -
aaron7524:
事务隔离级别 -
月陨殇:
wlh269 写道rswh110 写道lz内容写的不错,就是略 ...
事务隔离级别 -
lnx1824:
我的更奇怪,在本地静态的可以,放jetty里的页面后就不然,都 ...
JS得到上传图片尺寸
条件查询(重要)
* 可以采用拼字符串的方式传递参数
* 可以采用 ?号的方式传递参数
* 可以采用 :参数名的方式传递参数
* 如果传递多个参数,使用setParameterList来传递
* 在hql中可以使用数据库的函数,如:date_format
* 参见:SimpleConditionQueryTest.java
"like" 和 "=" 都可以通过 ": 参数名" 或者 "?" 接参数
如下: like :参数名 ,like ? , =:参数名 , =?
* 可以采用拼字符串的方式传递参数
* 可以采用 ?号的方式传递参数
* 可以采用 :参数名的方式传递参数
* 如果传递多个参数,使用setParameterList来传递
* 在hql中可以使用数据库的函数,如:date_format
* 参见:SimpleConditionQueryTest.java
"like" 和 "=" 都可以通过 ": 参数名" 或者 "?" 接参数
如下: like :参数名 ,like ? , =:参数名 , =?
package com.wlh.hibernate; import java.text.SimpleDateFormat; import java.util.Iterator; import java.util.List; import junit.framework.TestCase; import org.hibernate.Query; import org.hibernate.Session; public class SimpleConditionQueryTest extends TestCase{ public void testQuery1() { Session session = null; try { session = HibernateUtils.getSession(); session.beginTransaction(); //可以拼字符串 List students=session.createQuery("select id,name from Student where name like '%1%'").list(); for(Iterator iter=students.iterator();iter.hasNext();){ Object[] o=(Object[])iter.next(); System.out.println(o[0]+","+o[1]); } session.getTransaction().commit(); }catch(Exception e) { e.printStackTrace(); session.getTransaction().rollback(); }finally { HibernateUtils.closeSession(session); } } public void testQuery2() { Session session = null; try { session = HibernateUtils.getSession(); session.beginTransaction(); [b]//可以使用 ?号方式传递参数 //参数的索引从0开始 //传递的参数值不用单引号引起来[/b] /*Query query=session.createQuery("select id,name from Student where name like ?"); query.setParameter(0, "%1%"); List students=query.list();*/ List students=session.createQuery("select id,name from Student where name like ? ").setParameter(0, "%1%").list(); for(Iterator iter=students.iterator();iter.hasNext();){ Object[] o=(Object[])iter.next(); System.out.println(o[0]+","+o[1]); } session.getTransaction().commit(); }catch(Exception e) { e.printStackTrace(); session.getTransaction().rollback(); }finally { HibernateUtils.closeSession(session); } } public void testQuery3() { Session session = null; try { session = HibernateUtils.getSession(); session.beginTransaction(); [b]//like :参数名[/b] Query query=session.createQuery("select id,name from Student where name like :myname"); query.setParameter("myname", "%1%"); List students=query.list(); for(Iterator iter=students.iterator();iter.hasNext();){ Object[] o=(Object[])iter.next(); System.out.println(o[0]+","+o[1]); } session.getTransaction().commit(); }catch(Exception e) { e.printStackTrace(); session.getTransaction().rollback(); }finally { HibernateUtils.closeSession(session); } } public void testQuery4() { Session session = null; try { session = HibernateUtils.getSession(); session.beginTransaction(); [color=red]//=?[/color] Query query=session.createQuery("select id,name from Student where id=?"); query.setParameter(0,10); List students=query.list(); for(Iterator iter=students.iterator();iter.hasNext();){ Object[] o=(Object[])iter.next(); System.out.println(o[0]+","+o[1]); } session.getTransaction().commit(); }catch(Exception e) { e.printStackTrace(); session.getTransaction().rollback(); }finally { HibernateUtils.closeSession(session); } } public void testQuery5() { Session session = null; try { session = HibernateUtils.getSession(); session.beginTransaction(); [b][color=red]//=:参数名[/color][/b] Query query=session.createQuery("select id,name from Student where id=:myid"); query.setParameter("myid",10); List students=query.list(); for(Iterator iter=students.iterator();iter.hasNext();){ Object[] o=(Object[])iter.next(); System.out.println(o[0]+","+o[1]); } session.getTransaction().commit(); }catch(Exception e) { e.printStackTrace(); session.getTransaction().rollback(); }finally { HibernateUtils.closeSession(session); } } public void testQuery6() { Session session = null; try { session = HibernateUtils.getSession(); session.beginTransaction(); [b]// like :参数名 // = :参数名 [/b] Query query=session.createQuery("select id,name from Student where name like :myname and id =:myid"); query.setParameter("myname", "%1%"); query.setParameter("myid", 11); List students=query.list(); for(Iterator iter=students.iterator();iter.hasNext();){ Object[] o=(Object[])iter.next(); System.out.println(o[0]+","+o[1]); } session.getTransaction().commit(); }catch(Exception e) { e.printStackTrace(); session.getTransaction().rollback(); }finally { HibernateUtils.closeSession(session); } } public void testQuery7() { Session session = null; try { session = HibernateUtils.getSession(); session.beginTransaction(); [b][color=red]//支持in,需要使用setPramaterList进行参数传递 //传入的参数必须是对象数组[/color][/b] Query query=session.createQuery("select id,name from Student where id in(:myids)"); query.setParameterList("myids", new Object[]{1,2,3,4,5}); List students=query.list(); for(Iterator iter=students.iterator();iter.hasNext();){ Object[] o=(Object[])iter.next(); System.out.println(o[0]+","+o[1]); } session.getTransaction().commit(); }catch(Exception e) { e.printStackTrace(); session.getTransaction().rollback(); }finally { HibernateUtils.closeSession(session); } } public void testQuery8() { Session session = null; try { session = HibernateUtils.getSession(); session.beginTransaction(); [b]//查询2007年2月创建的学生(模糊查询)[/b] /*Query query=session.createQuery("select id,name from Student where date_format(createTime,'%Y-%m')=?"); query.setParameter(0, "2007-02");*/ Query query=session.createQuery("select id,name from Student where substring(createTime,1,7)=?"); query.setParameter(0, "2007-02"); List students=query.list(); for(Iterator iter=students.iterator();iter.hasNext();){ Object[] o=(Object[])iter.next(); System.out.println(o[0]+","+o[1]); } session.getTransaction().commit(); }catch(Exception e) { e.printStackTrace(); session.getTransaction().rollback(); }finally { HibernateUtils.closeSession(session); } } public void testQuery9() { Session session = null; try { session = HibernateUtils.getSession(); session.beginTransaction(); [b]//找出某个(时间段)入学的学生 ////查询2007-01-01到2007-01-20创建的学生[/b] SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Query query=session.createQuery("select id,name from Student where createTime between ? and ? order by id"); query.setParameter(0, sdf.parse( "2007-01-10 00:00:00")); query.setParameter(1, sdf.parse( "2007-01-20 23:59:59")); List students=query.list(); for(Iterator iter=students.iterator();iter.hasNext();){ Object[] o=(Object[])iter.next(); System.out.println(o[0]+","+o[1]); } session.getTransaction().commit(); }catch(Exception e) { e.printStackTrace(); session.getTransaction().rollback(); }finally { HibernateUtils.closeSession(session); } } }
发表评论
-
java开发实战视频详解
2017-07-02 08:09 510java开发实战视频详解 链接: http://pan.bai ... -
什么样的数据适合存放到第二级缓存中
2009-04-11 17:15 1708(一)Hibernate的二级缓存策略的一般过程如下: 1) ... -
hibernate二级缓存攻略
2009-04-10 18:13 970http://www.iteye.com/topic/1890 ... -
关于hibernate缓存的问题
2009-04-10 18:12 10351. 关于hibernate缓 ... -
get方法和load方法区别
2009-04-03 18:38 1372hibernate中get方法和load方法的根本区别在于:如 ... -
Hibernate性能调优(重点理解)
2009-03-02 12:48 1258一。 inverse = ? inv ... -
hibernate查询缓存
2009-03-02 11:17 3754hibernate查询缓存 查询缓存是缓存普通属性结果集 ... -
浅谈hibernate性能优化的几点建议
2009-02-21 11:15 998浅谈hibernate性能优化的几点建议 1、针对orac ... -
Hibernate抓取策略
2009-02-17 12:37 1352hibernate抓取策略(单端代理的批量抓取) 保持< ... -
Hibernate二级缓存的使用
2009-02-17 12:22 10301.加入ehcase.xml文件; 2.在配置文件中加入如下代 ... -
Hibernate一级缓存
2009-02-03 02:57 904一级缓存生命周期很短,它session的生命周期一致,一级缓存 ... -
HQL (十) 统计查询
2009-02-02 18:28 2336统计查询(重要) 参见:StatQueryTest.java ... -
HQL (九) 连接查询
2009-02-02 18:25 6106连接查询(重要) * 内连接 * 外连接(左连接/右连接) ... -
HQL (八) 对象导航查询
2009-02-02 13:17 2099对象导航查询,在hql中采用.进行导航(重要) 参见:Obj ... -
HQL (七) 分页查询
2009-02-02 13:05 1179分页查询(重要) * setFirstResult(),数据 ... -
HQL (六) 查询过滤器
2009-02-02 12:22 1841查询过滤器 设置了查 ... -
HQL (五) 外置命名查询(sql语句单独保存起来)
2009-02-02 12:04 2286外置命名查询 * 在要查询对象对应的映射文件(这里是stud ... -
HQL (四) 原生sql查询
2009-02-02 11:27 1849hibernate也支持直接sql进行查询 参见:SqlQu ... -
HQL (二) 实体对象查询
2009-02-02 11:05 1551实体对象查询(重要) * N+1问题,在默认情况下 ... -
HQL (一) 简单属性查询
2009-02-02 01:13 1917简单属性查询(重要) * 单一属性查询,返回结果集是属性列表 ...
相关推荐
在这个查询中,`EipLeaveMsg`, `EipRyJbxx`, 和 `SysUser` 分别表示三个不同的类,它们映射到数据库中的三张表。查询的目标是从这些表中选择特定属性并进行关联操作。 #### 查询解析: 1. **查询目标**:从`...
### Hibernate HQL 关联查询详解 #### 一、引言 在进行数据库操作时,关联查询是必不可少的一部分,尤其在处理复杂的数据结构时更是如此。Hibernate作为一种流行的Java持久层框架,提供了强大的对象关系映射(ORM...
三、HQL模糊查询的进阶使用 1. **使用`in`关键字**:如果需要查询符合多个条件的记录,可以结合`in`关键字。例如,查询所有名字以"张"或"李"开头的用户: ```java String[] names = {"%张%", "%李%"}; query....
#### 三、HQL语法示例解析 HQL语法丰富,涵盖了从简单到复杂的查询需求。以下是一些基础的HQL语法示例及其解析: 1. **基本查询** - `from Person as p`: 此语句用于从Person表中选择所有实例。这里的`as p`是可...
在第一个示例中,我们看到一个名为 `findPerson` 的方法,该方法执行了一个 HQL 查询来查找满足特定条件的人。这里的 HQL 语句为: ```java "from syidt.modules.grp.basegrp.persistence.Person as person where ...
#### 三、属性查询 属性查询允许开发者仅获取实体的部分属性,而不是整个实体。例如,如果我们只想获取用户的名字和年龄,可以使用如下HQL语句: ```java List[]> list = session.createQuery("select user.name, ...
#### 三、HQL语法详解 ##### 1. 基础查询 - **查询所有列**: ```hql SELECT obj FROM TableName obj; ``` - **查询指定列**: ```hql SELECT obj.column1, obj.column2 FROM TableName obj; ``` ##### 2. ...
条件查询 如果想要查询书名中包含 “c#” 的所有书籍,可以使用如下 HQL 语句: ```java String hql = "select b.title, b.price from Books b where b.title like '%c#%'"; Query query = session.createQuery...
HQL支持多种条件查询,包括等于、不等于、大于、小于等操作符。如查询所有年龄大于20岁的用户: ```java String hql = "from User where age > 20"; ``` 同时,HQL还支持like、in、between等特殊查询条件。 三、HQL...
如果要根据特定条件查询,比如找出所有年龄大于18岁的学生,可以这样写: ```sql SELECT s FROM Student s WHERE s.sage > 18 ``` HQL还可以进行关联查询,例如,找出所有选修了某门课程的学生: ```sql SELECT s ...
#### 三、使用命名参数的查询 在实际开发中,使用命名参数可以提高代码的可读性和可维护性。 1. **findByNamedParam(String queryString, String paramName, Object value)**:此方法接受一个包含命名参数的HQL...
2. **根据条件查询**:可以添加WHERE子句来指定查询条件,如 `from Student where sname='张三'`,这将返回名字为"张三"的学生对象。 3. **排序**:使用ORDER BY子句进行结果排序,如 `from Student order by sname...
#### 三、HQL语法详解及示例 下面将详细介绍HQL中的几种常见语法及其应用场景。 ##### 1. `FROM`子句 用于指定查询的目标对象或类。例如,查询所有Person对象: ```java from Person ``` 该语句返回的是Person表中...
### HQL查询语句详解 #### 一、HQL简介 Hibernate Query Language(HQL)是一种面向对象的查询语言,其语法与SQL相似但并非完全相同。HQL的设计旨在更好地支持面向对象编程特性,比如继承、多态以及关联等概念。...
### Hibernate中HQL语句查询学习笔记 #### HQL基础 **HQL**(Hibernate Query Language)是Hibernate框架推荐使用的查询语言,它提供了一种面向对象的方式来查询数据库,支持多种复杂的查询操作,如继承、多态及...
`WHERE`子句用于过滤查询结果,它允许根据特定条件筛选记录。例如: ```hql FROM Person WHERE name LIKE 'tom%' ``` 这条查询将返回所有名字以“tom”开头的`Person`实例。 对于关联对象的属性过滤,可以使用点...
三、HQL与SQL的对比 HQL的灵活性在于它可以处理对象关系,例如一对一、一对多、多对多的关系。在SQL中,处理这些关系通常需要复杂的联接操作,而在HQL中则相对简单。此外,HQL支持动态查询,可以方便地处理集合类型...
#### 三、HQL查询示例分析 根据给定的部分内容,我们可以看到两个具体的HQL查询示例,它们展示了如何使用HQL执行不同类型的查询。 ##### 1. 查询所有名称为“很普通事情”的事件相关联的人 ```java List p1 = sess....