Hibernate查询对象所有字段,单个字段 ,几个字段取值的问题

HQL 是Hibernate Query Language的简写,即 hibernate 查询语言:HQL采用面向对象的查询方式。HQL查询提供了更加丰富的和灵活的查询特性,因此Hibernate将HQL查询方式立为官方推荐的标准查询 方式,HQL查询在涵盖Criteria查询的所有功能的前提下,提供了类似标准SQL语句的查询方式,同时也提供了更加面向对象的封装。
 
在HQL中,你可以直接From你的实体对象来进行查询:
Java代码 
/**
 * 简单使用
 */ 
@SuppressWarnings("unchecked") 
public static void test1(){ 
    Session session = HibernateSessionFactory.currentSession(); 
    String hql = "from User u"; 
    Query query = session.createQuery(hql); 
    List<User> user = query.list(); 
    System.out.println("------------SQL执行完毕---------------"); 
    for (User us : user) { 
        System.out.println(us.getName()); 
    } 

 
类的后面可以接别名
 
如果想单独查询某一列,可以这样使用:
Java代码 
/**
 * 查询某列
 */ 
@SuppressWarnings("unchecked") 
public static void test2(){ 
    Session session = HibernateSessionFactory.currentSession(); 
    String hql = "select name from User u"; 
    Query query = session.createQuery(hql); 
    List<String> user = query.list(); 
    System.out.println("------------SQL执行完毕---------------"); 
    for (String us : user) { 
        System.out.println(us); 
    } 

 
如果想查询某几列的话,只是返回的内容不同了而已:
Java代码 
/**
 * 查询某几列
 */ 
@SuppressWarnings("unchecked") 
public static void test3(){ 
    Session session = HibernateSessionFactory.currentSession(); 
    String hql = "select id,name from User u"; 
    Query query = session.createQuery(hql); 
    List user = query.list(); 
    System.out.println("------------SQL执行完毕---------------"); 
    for(Object obj : user){ 
        Object[] arrObj = (Object[])obj; 
        System.out.println(arrObj[0] + "/t-->/t" + arrObj[1]); 
    } 
}

Java代码 
/**
 * 查询一条数据
 */ 
@SuppressWarnings("unchecked") 
public static void test3(){ 
    Session session = HibernateSessionFactory.currentSession(); 
    String hql = " from User u";

List list=session.createQuery(hql).setString(0, id).list();

//User user =(User) query.uniqueResult(); //当确定返回的实例只有一个或者null时 用uniqueResult()方法

if (list.size()==1){  
         return (User)list.get(0);  
     }else{  
         return null;  
     }

}

上一篇:Java之美[从菜鸟到高手演变]之HashMap、HashTable(转载)


下一篇:Python3基础 内置函数 dir 查询对象的方法列表