HQL:Hibernate Query Language,是Hibernate框架提供的一种查询机制,和SQL类似,不同的是HQL是面向对象的查询语句,让开发者能够以面向对象的思想来编写查询语句,对java来说十分友好。HQL不直接参与数据库的交互,是个中间层语言。
HQL 只能完成查询修改删除,新增操作无法完成。
1.查询对象
查询表中所有数据,自动完成对象的封装,返回List集合。
HQL进行查询,from后面不能跟表,后面跟的必须是一个实体类。
String hql="from people";
Query query =session.createQuery(hql);
List<People> list = query.list();
for(People people:list){
System.out.println(people);
}//遍历出来
2.分页查询
HQL分页查询可以通过调用query的方法来完成。
1.setFirstResult() 设置起始下标
2.setMaxResults() 设置截取长度
String hql = "from People";
Query query =session.createQuery(hql);
query.setFirstResult(1);
query.setMAxResults(3);
List<People> list = query.list();
for(People people:list){
System.out.println(people);
}//遍历出来
从一开始截取,截取到三。
3.where条件查询
HQL可以直接追加where关键字作为查询条件,与SQL没有区别。
String hql = "from People where id = 6";
Query query =session.createQuery(hql);
People people =(People) query.list().get(0);//集合,get(0)拿出来就是一个people对象
query.list()方法返回的是一个集合,此时集合里面只有一个对象,通过下标0取出该对象。