Hibernate的查询 HQL查询 查询某几列

HQL 是Hibernate Query Language的简写,即 hibernate 查询语言:HQL采用面向对象的查询方式。HQL查询提供了更加丰富的和灵活的查询特性,因此Hibernate将HQL查询方式立为官方推荐的标准查询方式,HQL查询在涵盖Criteria查询的所有功能的前提下,提供了类似标准SQL语句的查询方式,同时也提供了更加面向对象的封装。

 

在HQL中,你可以直接From你的实体对象来进行查询:

Java代码    收藏代码
  1. /** 
  2.  * 简单使用 
  3.  */  
  4. @SuppressWarnings("unchecked")  
  5. public static void test1(){  
  6.     Session session = HibernateSessionFactory.currentSession();  
  7.     String hql = "from User u";  
  8.     Query query = session.createQuery(hql);  
  9.     List<User> user = query.list();  
  10.     System.out.println("------------SQL执行完毕---------------");  
  11.     for (User us : user) {  
  12.         System.out.println(us.getName());  
  13.     }  
  14. }  

 

类的后面可以接别名

 

如果想单独查询某一列,可以这样使用:

Java代码    收藏代码
  1. /** 
  2.  * 查询某列 
  3.  */  
  4. @SuppressWarnings("unchecked")  
  5. public static void test2(){  
  6.     Session session = HibernateSessionFactory.currentSession();  
  7.     String hql = "select name from User u";  
  8.     Query query = session.createQuery(hql);  
  9.     List<String> user = query.list();  
  10.     System.out.println("------------SQL执行完毕---------------");  
  11.     for (String us : user) {  
  12.         System.out.println(us);  
  13.     }  
  14. }  

 

如果想查询某几列的话,只是返回的内容不同了而已:

Java代码    收藏代码
  1. /** 
  2.  * 查询某几列 
  3.  */  
  4. @SuppressWarnings("unchecked")  
  5. public static void test3(){  
  6.     Session session = HibernateSessionFactory.currentSession();  
  7.     String hql = "select id,name from User u";  
  8.     Query query = session.createQuery(hql);  
  9.     List user = query.list();  
  10.     System.out.println("------------SQL执行完毕---------------");  
  11.     for(Object obj : user){  
  12.         Object[] arrObj = (Object[])obj;  
  13.         System.out.println(arrObj[0] + "\t-->\t" + arrObj[1]);  
  14.     }  
  15. }  

 

你可以使用博客提供的测试架子来进行编写测试示例!

更多信息请查看  java教程网   www.itchm.com
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值