第五章 HQL实用技术

2019-03-28 18:28

第五章实用技术

5.1使用HQL查询语句

一、Hibernate支持哪三种查询方式?

二、HQL语句中除了和外,区分大小写。 1. from 子句举例 P140

2. select子句用于。 3. where子句用于。 4.使用表达式 5. order by子句 三、如何执行HQL语句 1.声明变量并初始化 String hql=”from Emp”; 2. 构建Query对象

Query query=session.createQuery(hql);

Query对象构建好以后,执行查询语句,并获取查询结果。有两种方式执行查询,一种是Query对象的list()方法,另一种是Query对象的iterator()方法。

示例1:

(1)使用list()方法执行查询,并输出结果

import java.util.List;

importorg.hibernate.HibernateException; import org.hibernate.Query; import org.hibernate.Session;

import org.hibernate.SessionFactory; importorg.hibernate.Transaction;

import org.hibernate.cfg.Configuration;

importentity.Dept; importentity.Emp;

publicclass test {

/**

* @param args */

publicstaticvoid main(String[] args) { }

Configuration conf = null;

SessionFactory sessionFactory = null; Session session = null; try { }

// 1.读取配置文件

conf = new Configuration().configure(); // 2.创建SessionFactory

sessionFactory = conf.buildSessionFactory(); // 3. 打开session

session = sessionFactory.openSession(); // 声明变量并初始化

String hql = \;

// 构建query对象

Query query = session.createQuery(hql); // 执行查询

List empList = query.list(); // 遍历并输出结果

for (Emp emp : empList) {

System.out.println(\员工姓名:\ + emp.getEmpName()); }

e.printStackTrace(); // 7. 关闭session

if (session != null)

session.close();

} catch (Exception e) { } finally {

}

List()方法生成一条SQL查询语句,查询所有符合条件的记录 (2)使用iterator()方法执行查询 修改以上代码如下

import java.util.Iterator;

// 执行查询

Iterator empIterator = query.iterate(); // 声明变量

Emp emp = null;

// 遍历并输出结果

while (empIterator.hasNext()) {

// 为变量赋值

emp = empIterator.next();

System.out.println(\员工姓名:\ + emp.getEmpName()); }

Iterator()方法首先查询所有符合条件的主键值,此处是empno,然后在需要某一对象的其他属性值时,才生成按主键查询的SQL语句,此处是

select

emp0_.empno as empno1_0_, emp0_.ename as ename1_0_, emp0_.job as job1_0_, emp0_.sal as sal1_0_,

emp0_.hireDate as hireDate1_0_ from

scott.emp emp0_ where

emp0_.empno=?

四、执行HQL语句的步骤

1.获取session对象 2.编写hql语句 3.创建query Query query = session.createQuery(hql); 4.执行查询,得到查询结果

5.2 在HQL查询语句中绑定参数 一、参数绑定形式

1. 按参数位置绑定

用“?”占位符来定义参数的位置

调用setXXX()方法来绑定参数,第一个参数位置为零。 示例3: /** * 设置占位符 */

publicclass test {

publicstaticvoid main(String[] args) {

SessionFactory sessionFactory = null; Session session = null; try {

sessionFactory = new Configuration().configure()

.buildSessionFactory();

session = sessionFactory.openSession();

// 设置占位符

String hql = \; Query query = session.createQuery(hql); // 为占位符赋值

query.setString(0, \);

Iterator it = query.iterate(); if (it.hasNext()) {

System.out.println(\部门地址为 :\ + it.next().getLocation()); }

}

}

}

e.printStackTrace(); if (session != null)

session.close();

} catch (Exception e) { } finally {


第五章 HQL实用技术.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:老年汗病(自主神经功能紊乱)中医诊疗方案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: