JAVA Hibernate 配合反射动态输出所有数据

=.= 今天一个小朋友问我,如何封装一个类.只需要传入SQL语句,就能返回结果数据集.在这个封装类中不需要知道传入的对象是何种类型.但是又能获取对象的所有属性和对应的数值. 那么既然不知道类型,就肯定不能使用 强制转换了。难点是Hibernate自动生成了数据库反射类,使用session取出一个赋值好的反射类,之后调用该反射类的所有属性取数据。那么封装后,不知道类的类型,自然也不知道具体的方法,无法取值。

实现代码如下:
[cc lang=”java” nowrap=”false”]
Session session=HibernateSessionFactory.getSession();
//获取所有数据
List list=getAll(“from Dept”,session);

for(Object obj:list)
{
Class _class=obj.getClass();
Field[] fields=_class.getDeclaredFields();
for(int i=0;i list=query.list();
return list;
}
[/cc]

调用的数据表为 Oracle 数据库 Scott 的Dept 表.
输出结果:
deptno:10 dname:ACCOUNTING loc:NEW YORK
—-
deptno:20 dname:RESEARCH loc:DALLAS
—-
deptno:30 dname:SALES loc:CHICAGO
—-
deptno:40 dname:OPERATIONS loc:BOSTON

发表评论

电子邮件地址不会被公开。 必填项已用*标注