HQL Query查询

来源:互联网 发布:肛门调教知乎 编辑:程序博客网 时间:2024/05/16 06:30
 

对于我们学习的HQL,我大概理解为就是一种查询的语言,它没有增加、删除、修改的作用,而对我们用来查询的操作,感觉用起来就是很简便,代码很少,很好理解一些。下面是我通过学习和搜索对HQL的一些简单认识和总结。

一、对HQL的一些基本任何是了解:

1、  HQL(Hibernate Query Language):面向对象的查询语句,与SQL不同,HQL中的对象名是区分大小写的(除了Java类和属性其他部分不区分大小写);HQL中查的是对象而不是和表,并且支持多态;HQL主要通过QUERY来操作,Query的创建方式:

        Query q=session createQuery(hql);

2、Query是Hibernate的查询接口,用于从数据存储源查询对象及控制执行查询的过程,Query包装了一个HQL查询语句。

3、HQL 是使用最广的一种检索方式. 它有如下功能:

a)         在查询语句中设定各种查询条件

b)        支持投影查询, 即仅检索出对象的部分属性

c)         支持分页查询

分页查询:

setFirstResult(int firstResult):设定从哪一个对象开始检索,参数firstResukt表示这个对象在查询结果中的索引位置,索引位置的起始值为0,默认情况下,Query从查询结果中的第一个对象开始检索。

setMaxResult(int maxResults):设定一次最多检索出的对象的数目,在默认情况下,Query和Criteria接口检索出查询结果中所有对象。

EG://HQL查询

Query query=session.createQuery(“from User user order by user.id”);

query.setFirstResult(3);

query.setMaxResults(4);

query.list();

d)        支持连接查询

e)         支持分组查询, 允许使用 HAVING 和 GROUP BY 关键字

f)         提供内置聚集函数, 如 sum(), min() 和 max()

g)        能够调用 用户定义的 SQL 函数或标准的 SQL 函数

h)        支持子查询

i)          支持动态绑定参数

二、下面是我们做的一个用query方法的一个查询操作的简单小实例:

1)首先定义一个查询的方法:

public static void query(String name){

       Session s=null;

       try{

           s=HibernateUtil.getSession();

           //hibernate的查询语言.from后面+类名(区分大小写).也可以用as给类起一个别名,as可以省略

           //按照姓名查找

           String queryString="from 类名 as 类的别名 where 类的别名.name=:n"; 

           Query query=s.createQuery(queryString);

           query.setString("n",name);

           //分页显示的操作

           query.setFirstResult(2);//显示第几页,当前页

           query.setMaxResults(2);//每页做多显示的记录数

           //返回多行结果集

           List<User> list=query.list();

           for(User u:list){

              System.out.println(u.getId()+":"+u.getName());

           }

          

           /*User user=(User) query.uniqueResult();

           System.out.println(user.getId()+":"+user.getName());*/

          

           /*query.uniqueResult();//返回一行结果集*/      

       }finally{

           if(s!=null){

              s.close();

           }

       }

    }

原创粉丝点击