叙:HQL是一个完全面向对象的数据库查询语言,提供有针对多种情况下的查询方式,下面电虫就基本查询进行记录一下,后面的会继续学习;
Hibernate的HQL查询之基本查询
HQL介绍
HQL(hibernate query language):hibernate的数据查询方式,HQL是针对持久化对象的,它是用来取得对象而不进行update、delete和insert等更新操作,是一种完全面向对象的,具备继承、多态和关联等特性,因此在里面的查询语句都是针对实体对象以及实体对象中的属性的,不要搞混了;
查询方法
具体的代码如下,需要解释的不多,直接上代码:
@Test
/*
* HQL的基本查询
*/
public void demo1() {
Session session = HibernateUtils.openSession();
Transaction bt = session.beginTransaction();
// String hql1 = "from com.java.domain.Customer";
String hql = "from Customer";// 简单书写
Query cust = session.createQuery(hql);
List<Customer> list = cust.list();
for (Customer customer : list) {
System.out.println(customer);
}
bt.commit();
session.close();
}
注意:
HQL数据查询是一面向对象的形式,因此,hql = “from Customer”;这句中的Customer是实体对象的名称,而非数据库表的表名,
关于实体类名有两种书写方式
|————全类名书写方式:即:从src下的第一个demo文件所在的文件夹到类名(hql1 = “from com.java.domain.Customer”),这种写法是为了防止碰到相同类名的文件(一般情况下没必要这么写);|———— 简单书写方式:直接写类名(hql = “from Customer”),这种是最常用的;
pass:上面用到的 HibernateUtils.openSession()是我自己抽取创建session的工具类,没有这个工具类的或者名称不一样的可以进行对此修改或者手动创建session,不一定非要用工具类;
pass:pass:本节记录的是HQL的基本查询,下边会继续学习其他的什么分页查询、排序查询、映射查询等查询方式;