Hibernate  配备了一种非常强大的查询语言,这种语言看上去很像  SQL。但是不要被语法结构上的相似所迷惑,HQL  是非常有意识的被设计为完全面向对象的查询,它可以理解如继承、多态和关联之类的概念。

 

基本规则

  1. HQL语法类似于SQL,也是一种select from结构的语句。但是他后面跟的不是表名和字段名,而是类名和属性名。
  2. HQL基本查询语法跟SQL很类似
  3. HQL大小写不敏感。但是,设计java类名、包名、属性名时大小写敏感。
  4. 包名的使用情况。比如:如果注册的实体类Emp只有一个类,那么查询时可以不加包名,hibernate会自动检索到Emp类。但是如果注册多个实体类,名字都叫Emp。此时就要增加包名来区别多个实体类。

第一个HQL查询

 1  1 package com.qcf.test;
 2  2 
 3  3 import java.util.List;
 4  4 
 5  5 
 6  6 import org.hibernate.Query;
 7  7 import org.hibernate.Session;
 8  8 import org.hibernate.SessionFactory;
 9  9 import org.hibernate.Transaction;
10 10 import org.hibernate.cfg.Configuration;
11 11 
12 12 import com.qcf.po.User;
13 13 
14 14 public class TestHiber {
15 15     public static void main(String[] args) {
16 16         //读取配置文件中的信息
17 17         Configuration con=new Configuration().configure();
18 18         //获取sessionFactory对象
19 19         SessionFactory factory=con.buildSessionFactory();
20 20         //获取Session对象
21 21         Session session=factory.openSession();
22 22         String hql="from User";
23 23         //创建HQL查询
24 24         Query query= session.createQuery(hql);
25 25         List list=query.list();
26 26         //对查询的结果进行遍历
27 27         for (int i = 0; i < list.size(); i++) {
28 28             User user=(User) list.get(i);
29 29             System.out.println(user.getName());
30 30         }
31 31         
32 32         session.close();
33 33     }
34 34 }
View Code

相关文章: