代码改变世界

HQL整理

2014-01-03 09:12  _cha1R  阅读(174)  评论(0编辑  收藏  举报

1. 查询整个映射对象所有字段

Java代码 复制代码
  1. //直接from查询出来的是一个映射对象,即:查询整个映射对象所有字段      
  2.         String hql = "from Users";      
  3.         Query query = session.createQuery(hql);      
  4.               
  5.         List<Users> users = query.list();      
  6.         for(Users user : users){      
  7.             System.out.println(user.getName() + " : " + user.getPasswd() + " : " + user.getId());      
  8.         }      
  9.      
  10.  输出结果为:      
  11. name1 : password1 : 1     
  12. name2 : password2 : 2     
  13. name3 : password3 : 3    
[java] view plaincopy
 
  1. //直接from查询出来的是一个映射对象,即:查询整个映射对象所有字段     
  2.         String hql = "from Users";     
  3.         Query query = session.createQuery(hql);     
  4.              
  5.         List<Users> users = query.list();     
  6.         for(Users user : users){     
  7.             System.out.println(user.getName() + " : " + user.getPasswd() + " : " + user.getId());     
  8.         }     
  9.     
  10.  输出结果为:     
  11. name1 : password1 : 1    
  12. name2 : password2 : 2    
  13. name3 : password3 : 3    



2.查询单个字段 

Java代码 复制代码
  1. //查询单个字段      
  2.         String hql = " select name from Users";      
  3.         Query query = session.createQuery(hql);      
  4.               
  5.         List<String> list = query.list();      
  6.         for(String str : list){      
  7.             System.out.println(str);      
  8.         }      
  9. 输出结果为:      
  10. name1      
  11. name2      
  12. name3    
[java] view plaincopy
 
  1. //查询单个字段     
  2.         String hql = " select name from Users";     
  3.         Query query = session.createQuery(hql);     
  4.              
  5.         List<String> list = query.list();     
  6.         for(String str : list){     
  7.             System.out.println(str);     
  8.         }     
  9. 输出结果为:     
  10. name1     
  11. name2     
  12. name3    



3.查询其中几个字段 
 

Java代码 复制代码
  1. //查询其中几个字段      
  2.         String hql = " select name,passwd from Users";      
  3.         Query query = session.createQuery(hql);      
  4.         //默认查询出来的list里存放的是一个Object数组      
  5.         List<Object[]> list = query.list();      
  6.         for(Object[] object : list){      
  7.             String name = (String)object[0];      
  8.             String passwd = (String)object[1];      
  9.                   
  10.             System.out.println(name + " : " + passwd);      
  11.         }      
  12. 输出结果为:      
  13. name1 : password1      
  14. name2 : password2      
  15. name3 : password3    
[java] view plaincopy
 
  1. //查询其中几个字段     
  2.         String hql = " select name,passwd from Users";     
  3.         Query query = session.createQuery(hql);     
  4.         //默认查询出来的list里存放的是一个Object数组     
  5.         List<Object[]> list = query.list();     
  6.         for(Object[] object : list){     
  7.             String name = (String)object[0];     
  8.             String passwd = (String)object[1];     
  9.                  
  10.             System.out.println(name + " : " + passwd);     
  11.         }     
  12. 输出结果为:     
  13. name1 : password1     
  14. name2 : password2     
  15. name3 : password3    



4.修改默认查询结果(query.list())不以Object[]数组形式返回,以List形式返回

Java代码 复制代码

 

 

//查询其中几个字段,添加new list(),注意list里的l是小写的。也不需要导入包,这样通过query.list()出来的list里存放的不再是默认的Object数组了,而是List集合了   
        String hql = " select new list(name,passwd) from Users";   
        Query query = session.createQuery(hql);   
        //默认查询出来的list里存放的是一个Object数组,但是在这里list里存放的不再是默认的Object数组了,而是List集合了   
        List<List> list = query.list();   
        for(List user : list){   
            String name = (String)user.get(0);   
            String passwd = (String)user.get(1);   
               
            System.out.println(name + " : " + passwd);   
        }   
        /**  
        输出结果为:  
         name1 : password1  
        name2 : password2  
        name3 : password3  
         */