在使用Hibernate时,用以下代码读取数据,总是报错
/读取数据///
Query q = session.createSQLQuery("select * from Emp");
List<Emp> list = q.list();
for(int i = 0; i < list.size(); i ++) {
System.out.println(list.get(i).getEmpno() + ": " + list.get(i).getEname());
}
session.close();
控制台报错语句:
Hibernate: update mydb.emp set ename=?, job=?, hiredate=?, sal=?, comm=?, deptno=?, mgr=? where empno=?
Hibernate: select * from Emp
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object;
at com.deific.hibernatedemo.test.HibernateTest.main(HibernateTest.java:48)
Query q = session.createQuery("from Emp");
List<Emp> list = q.list();
for(int i = 0; i < list.size(); i ++) {
System.out.println(list.get(i).getEmpno() + ": " + list.get(i).getEname());
}
测试后,没有问题,一切正常。
Query q = session.createSQLQuery("select * from Emp");
List list = q.list();
for(int i = 0; i < list.size(); i ++) {
Emp e = new Emp();
Object[] object = (Object[]) list.get(i);
e.setEname((String)object[0]);
//System.out.println(list.get(i).getEmpno() + ": " + list.get(i).getEname());
}
XXXXXXX 代表以hibernate生成的Bean的对象,也就是数据表映射出的Bean,可以把查询出的数据转化成bean存放到list中再返回。
List<Emp> list = q.list();
for(int i = 0; i < list.size(); i ++) {
System.out.println(list.get(i).getEmpno() + ": " + list.get(i).getEname());
}