HQL详解二

一 uniqueResult方法
当session.createQuery(“from xxx where cardid=‘xxx’”).uniqueResult();
返回的结果只有一个对象时,可以使用uniqueResult()得到该对象。但是,如果结果是多条,使用该方法就会抛出异常。
如果我们检索一个对象,明确知道最多只有一个对象,则建议使用该方法。

二 实战
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();
                        //1 检索学生名字和所在系.
                        //原则:在jdbc中,要查询什么字段,就查询什么字段,不要把所有的字段都查出来
                        //但在hibernate中,我们其实可用不遵循这个规则,建议把整个对象属性都查询
                        //这里还是要说明怎样获取部分属性
                        Student s=(Student)session.createQuery("from Student where sid='20050005'").uniqueResult();
                        System.out.println(s.getSname()+" "+s.getSage());   
                        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();
                        }
                        
                }
                
        }
}



三 运行结果
周华健 24

你可能感兴趣的:(HQL,Hibernate)