我是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");
}
我需要获得多个列值...我该怎么做?
答案 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
,