`
wlh269
  • 浏览: 455846 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

HQL (五) 外置命名查询(sql语句单独保存起来)

阅读更多
外置命名查询
* 在要查询对象对应的映射文件(这里是student.hbm.xml)中采用<query>标签来定义hql

<query name="searchStudents">
<![CDATA[
select s from Student s where s.id<?
]]>
</query>



* 在程序中使用session.getNamedQuery()来得到hql查询串
参见:NameQueryTest.java
package com.wlh.hibernate;

import java.util.Iterator;
import java.util.List;

import junit.framework.TestCase;

import org.hibernate.Session;

public class NameQueryTest extends TestCase{

	public void testQuery1() {
		Session session = null;
		try {
			session = HibernateUtils.getSession();
			session.beginTransaction();
			
			List students=session.getNamedQuery("studentQuery")
								 .setParameter(0, 10)						
								 .list();
			for(Iterator iter=students.iterator();iter.hasNext();){
				Student o=(Student)iter.next();
				System.out.println("name="+o.getName());
			}
			session.getTransaction().commit();
		}catch(Exception e) {
			e.printStackTrace();
			session.getTransaction().rollback();
		}finally {
			HibernateUtils.closeSession(session);
		}
	}	
}

分享到:
评论
1 楼 beginoftheworld 2011-12-05  
楼主好:
    以上的程序通过getNamedQuery("studentQuery").setParameter(0, 10)拿到得SQL语句是这样的吗:select s from Student s where s.id < 10 ? 还是只在query.list()执行时,那个参数才传进去 ?

相关推荐

    hibernate查询语言--HQL

    外置命名查询是在Hibernate配置文件中预先定义好的HQL或SQL查询,可以在代码中直接调用,提高代码可读性和复用性。 ```xml &lt;!-- 在hibernate.cfg.xml或对应的hibernate映射文件中 --&gt; from Student where name = ...

    hive-part1-基础知识.pdf

    良好的容错性能保障即使有节点出现问题,SQL语句仍然能够完成执行。然而,Hive不支持记录级别的增删改操作,查询延时严重,也不支持事务,主要适用于OLAP(联机分析处理)而不适用于OLTP(联机事务处理)。 接下来...

    Hibernate

    这种方式允许开发者直接书写SQL语句,提供了更高的灵活性。 - **执行方式**:通过`createSQLQuery()`方法执行原生SQL查询。 #### 关联关系映射 - **双向单联**:两个实体之间存在一对一的关系,且双方都维护着这段...

    hibernate 框架详解

    外置命名查询(Externalizing named queries) 11.4.2. 过滤集合 11.4.3. 条件查询(Criteria queries) 11.4.4. 使用原生SQL的查询 11.5. 修改持久对象 11.6. 修改脱管(Detached)对象 11.7. 自动状态检测 ...

    最全Hibernate 参考文档

    外置命名查询(Externalizing named queries) 10.4.2. 过滤集合 10.4.3. 条件查询(Criteria queries) 10.4.4. 使用原生SQL的查询 10.5. 修改持久对象 10.6. 修改脱管(Detached)对象 10.7. 自动状态检测 10.8. 删除...

    Hibernate3+中文参考文档

    外置命名查询(Externalizing named queries) 10.4.2. 过滤集合 10.4.3. 条件查询(Criteria queries) 10.4.4. 使用原生SQL的查询 10.5. 修改持久对象 10.6. 修改脱管(Detached)对象 10.7. 自动状态检测 10.8. 删除...

    hibernate3.04中文文档.chm

    外置命名查询(Externalizing named queries) 11.4.2. 过滤集合 11.4.3. 条件查询(Criteria queries) 11.4.4. 使用原生SQL的查询 11.5. 修改持久对象 11.6. 修改脱管(Detached)对象 11.7. 自动状态检测 11.8....

    Hibernate教程

    外置命名查询(Externalizing named queries) 11.4.2. 过滤集合 11.4.3. 条件查询(Criteria queries) 11.4.4. 使用原生SQL的查询 11.5. 修改持久对象 11.6. 修改脱管(Detached)对象 11.7. 自动状态检测 11.8. ...

Global site tag (gtag.js) - Google Analytics