天天看點

在映射檔案中得到hql語句

一 簡介 可以從映射檔案中得到hql,執行查詢語句,這樣可以更加靈活,在某些情況下,可以考慮使用:比如在: Student.hbm.xml 中

<query name="myquerytest">
<![CDATA[select sname,ssex from Student where sage>22]]>
</query>
           

如何使用:

List list=session.getNamedQuery("myquerytest").list();
    System.out.println(list.size());
    Iterator it=list.iterator();
    while(it.hasNext()){
        Object obj[]=(Object[])it.next();
        System.out.println("n="+obj[0]);
}
           

二 執行個體

package com.cakin.view;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import com.cakin.util.HibernateUtil;
import com.sina.domain.Studcourse;
import com.sina.domain.Student;
public class TestMain {  
    public static void main(String[] args) {
        //這我們舉例說明hql使用
        Session session=null;
        Transaction tx=null;
        try {
            session=HibernateUtil.getCurrentSession();
            tx=session.beginTransaction();
            List list=session.getNamedQuery("myquerytest").list();
            System.out.println(list.size());
            Iterator it=list.iterator();
            while(it.hasNext()){
                Object obj[]=(Object[])it.next();
                System.out.println("n="+obj[0]);
                }
            tx.commit();
        } catch (Exception e) {
            e.printStackTrace();
            if(tx!=null){
                tx.rollback();
            }
            throw new RuntimeException(e.getMessage());
            // TODO: handle exception
        }finally{
            if(session!=null&&session.isOpen()){
                session.close();
            }
        }
    }
}
           

三 測試結果 4 n=林青霞 n=劉德華 n=林可欣 n=周華健

繼續閱讀