HQL定义
1.Hibernate Query Language,Hibernate查询语言
2.HQL是面向对象的查询语言
3.HQL提供了丰富灵活的查询特性
HQL语句形式与sql很相似
select,from,where,group by,having,order by....
初学HQL注意:
1.HQL是面向对象的查询语言,对Java类与属性大小写敏感
2.HQL对关键字不区分大小写select from, where,group by,having,order by....
Query接口:
Query实例的创建:
1. Session 的createQuery()方法创建Query实例
2.createQuery方法包含一个HQL语句参数,createQuery(hql)
Query执行查询:
1.Query接口的list()方法执行HQL查询
2.list()方法返回结果数据类型为java.util.List,List集合中存放符合查询条件的持久化对象
下面进入实战
1.(获取全部学生信息)HibernateUtil是我自己封装的工具类,可以参考一下Hibernate工具类
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class HQLTest {
private Session session = null;
@Before
public void testInit(){
session = HibernateUtil.getSession();
}
@Test
public void hqlTest(){
String hql = "from Student";
Query query = session.createQuery(hql);
List<Student> students =query.list();
for(Student stu:students){
System.out.println(stu);
}
}
@After
public void testDestory(){
session.close();
}
}
注意:如下图上面的查询代码中Student 是类名而不是表名,类名可以写全路径(com.edu.hpu.Student),也可以省略包路径直接使用Student