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;  
     } 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM