4

我是 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

4 回答 4

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());
    }
于 2013-08-30T12:04:31.877 回答
1

这就是 Hibernate(或者更确切地说是 JPA)的意义所在。如果要访问常规值,请改用 JDBC。

于 2013-08-29T09:53:19.810 回答
0
select main.empid,main.address from Main as main

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

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

于 2013-08-29T09:54:53.757 回答
0

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

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

于 2013-08-29T09:56:13.717 回答