定义
Hibernate Query Language, Hiberhate查询语言
HQL是面向对象的查询语言
HQL语句形式
Paste_Image.png
一.org.hibernate.Query接口
Query接口定义有执行查询的方法
Paste_Image.png
Session的createQuery()方法创建Query实例
createQuery()方法包含一个HQL语句参数, createQuery(hql)
Query接口的list()方法执行HQL查询
list()方法返回结果数据类型为java.util.List, list接合中存放符合查询条件的持久化对象;
/**
* 查询班级信息
*/
@Test
public void testGrade() {
//定义hql语句,Grade类不需要写全限定名:entity.Grade, 默认情况会auto-import
String hql = "from Grade";
Query query = session.createQuery(hql);
List res = query.list();
for (Grade grade : res) {
//只输出班级名称,则hibernate只查询grade表,不产生关联查询
System.out.println(grade.getGname());
//当输出班级包含的学生属性时候,hibernate会根据关联关系查询student2表数据
System.out.println(grade.getStudent2());
}
}
二.from子句中持久化类的引用
不需要引入持久化类的全限定名,直接引入类名, 比如要查询
auto-import(自动引入)缺省情况
三.select子句返回选择属性的格式
以对象数组Object[]形式返回选择的属性
/**
* 以Object数组形式返回查询属性
*/
@Test
public void testSelectColumnObjectArray()
{
/*
//使用select查询班级id和名称,返回对象