hibernate3 查询表 返回list集合

1.查询实体

public void Test1() throws Exception{   
        Configuration config=new Configuration().configure();
        SessionFactory sessionFactory= config.buildSessionFactory();
        Session session=null;
        Transaction tr=null;
        try{
            session= sessionFactory.openSession();
            tr=session.beginTransaction();
           String hql="from Dept";                                   //定义String类型hql,写入hql语句。    
              Query query=session.createQuery(hql);                    

              List<Dept> list = query.list();                          
            for(Dept dept:list){                                     
                System.out.print("部门编号:  "+dept.getDid() +"   "); 
                System.out.println("部门名称:   "+dept.getDname());   

            }                                                        
            tr.commit();                                             
        }catch(Exception e){
            tr.rollback();
        }finally{
            if(session!=null){
                session.close();
            }
            if(sessionFactory!=null){
                sessionFactory.close();
            }
        }
    }

2.查询单个属性:

public void Test2() throws Exception{ 
        Configuration config=new Configuration().configure();
        SessionFactory sessionFactory= config.buildSessionFactory();
        Session session=null;
        Transaction tr=null;
        try{
            session= sessionFactory.openSession();
            tr=session.beginTransaction();
            Query query=session.createQuery("select dname from Dept");   
            List<String> list = query.list();                            
            for(String name:list){                                       
                System.out.println("部门名称: "+name);                   
            }                                                                                            
            tr.commit();
        }catch(Exception e){
            tr.rollback();
        }finally{
            if(session!=null){
                session.close();
            }
            if(sessionFactory!=null){
                sessionFactory.close();
            }
        }
    }

3.查询多个属性:

public void Test3() throws Exception{
        Configuration config=new Configuration().configure();
        SessionFactory sessionFactory= config.buildSessionFactory();
        Session session=null;
        Transaction tr=null;
        try{
            session= sessionFactory.openSession();
            tr=session.beginTransaction();
            Query query=session.createQuery("select ename,eage from Emp");    
            List<Object[]> list = query.list();                               //对多个属性查询的时候,使用Obejct数组。

            for(Object[] message:list){                                       
                System.out.println(Arrays.toString(message));                 //采用辅助类Arrays的toString()方法打印数组。
            }                                                                                                   
            tr.commit();
        }catch(Exception e){
            tr.rollback();
        }finally{
            if(session!=null){
                session.close();
            }
            if(sessionFactory!=null){
                sessionFactory.close();
            }
        }
    }

4.通过实体类查询:

public class Emp {
   private int eid;

   private int eage;

   private float esal;
   private String ename;
   省略get,set方法。


public Emp() {
    super();   
}
public Emp(int eage, String ename) {    //需要查询的属性是什么,构造器的参数就是什么。
    super();
    this.eage = eage;
    this.ename = ename;
}
public void Test4() throws Exception{ 
        Configuration config=new Configuration().configure();
        SessionFactory sessionFactory= config.buildSessionFactory();
        Session session=null;
        Transaction tr=null;
        try{
            session= sessionFactory.openSession();
            tr=session.beginTransaction();
            Query query=session.createQuery("select new Emp(eage,ename) from Emp e");     select 后直接调用构造器,参数就是查询的属性,参数不可错乱。
            List<Emp> list = query.list();                                                此处不实用object数组,类类型即可
            for(Emp message:list){                                                        
                System.out.print("姓名:"+message.getEname()+"  ");                        
                System.out.println("年龄:"+message.getEage());                            
            }                                                                                             
            tr.commit();
        }catch(Exception e){
            tr.rollback();
        }finally{
            if(session!=null){
                session.close();
            }
            if(sessionFactory!=null){
                sessionFactory.close();
            }
        }
    }






























































</pre><p></p><pre class="java" name="code">


</pre><p></p><pre class="java" name="code">


</pre><p></p><pre class="java" name="code">


</pre><p></p><pre class="java" name="code">


</pre><p></p><pre class="java" name="code">


</pre><p></p><pre class="java" name="code">


</pre><p></p><pre class="java" name="code">


</pre><p></p><pre class="java" name="code">


</pre><p></p><pre class="java" name="code">


</pre><p></p><pre class="java" name="code">


</pre><p></p><pre class="java" name="code">


</pre><p></p><pre class="java" name="code">


</pre><p></p><pre class="java" name="code">


</pre><p></p><pre class="java" name="code">


</pre><p></p><pre class="java" name="code">


</pre><p></p><pre class="java" name="code">


</pre><p></p><pre class="java" name="code">


</pre><p></p><pre class="java" name="code">


</pre><p></p><pre class="java" name="code">


</pre><p></p><pre class="java" name="code">


</pre><p></p><pre class="java" name="code">


</pre><p></p><pre class="java" name="code">


</pre><p></p><pre class="java" name="code">


</pre><p></p><pre class="java" name="code">


</pre><p></p><pre class="java" name="code">


</pre><p></p><pre class="java" name="code">


</pre><p></p><pre class="java" name="code">


</pre><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><strong></strong><p></p><p></p><pre class="java" name="code">public void Test3() throws Exception{
        Configuration config=new Configuration().configure();
        SessionFactory sessionFactory= config.buildSessionFactory();
        Session session=null;
        Transaction tr=null;
        try{
            session= sessionFactory.openSession();
            tr=session.beginTransaction();
            Query query=session.createQuery("select ename,eage from Emp");    
            List<Object[]> list = query.list();                               //对多个属性查询的时候,使用Obejct数组。

            for(Object[] message:list){                                       
                System.out.println(Arrays.toString(message));                 //采用辅助类Arrays的toString()方法打印数组。
            }                                                                                                   
            tr.commit();
        }catch(Exception e){
            tr.rollback();
        }finally{
            if(session!=null){
                session.close();
            }
            if(sessionFactory!=null){
                sessionFactory.close();
            }
        }
    }




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值