如何在hibernate中检索数据库表值?

时间:2013-08-29 09:46:41

标签: java hibernate

我是Hibernate的新手,我想从数据库中检索表值,我有一个代码,但它返回对象值。我的示例代码是,

Configuration conf=new Configuration();
    @SuppressWarnings("deprecation")
    SessionFactory sessionfactory=conf.configure().buildSessionFactory();

    Session session=sessionfactory.openSession();
    List maintable = null;
    try
    {
        org.hibernate.Transaction tx = session.beginTransaction();
        Query q = session.createQuery ("select main.empid,main.address from Main as main");
         maintable =q.list();
         Object[] obj=maintable.toArray();

          for(int i=0;i<obj.length;i++)
          {
              System.out.println("column valuse : "+obj[i]);

          }

    tx.commit();
    session.close();

    }
    catch(Exception e1)
    {
        System.out.println("Exception");
    }

我需要获得多个列值...我该怎么做?

4 个答案:

答案 0 :(得分:2)

我可以轻松地从列表中检索值。但在上面的问题中,我只打印对象属性而不是值。

Query qry=session.createQuery("from Main");
    List<Main> user=(List<Main>) qry.list();
    session.getTransaction().commit();

    session.close();
    for(Main u : user)
    {
        System.out.println("User id : "+u.getEmpid());
        System.out.println("User Address:"+u.getAddress());
    }

答案 1 :(得分:1)

这就是Hibernate(或JPA)的意思。如果要访问常规值,请改用JDBC。

答案 2 :(得分:0)

select main.empid,main.address from Main as main

请检查empid,address是数据库中的列名称还是Main类的属性名称。

它应该是实体(即Main)类的属性名称。

答案 3 :(得分:0)

当我们从实体类中检索一些字段/属性时,它非常有用。上面带有“new”关键字的查询可以返回“Main”类型的列表。如果我们不使用这样的关键字并直接指定字段,则会检索Object []类型的列表。

select new Main(main.empid,main.address) from Main as main