JAVA从数据库查出来的数据放到实体类想用反射的方法给他们赋值,怎么做?

如题所述

说一个大概思路吧:
1.读取数据:从数据库中读取数据的同时,拿到元数据,即metadata;
2.实例化:通过类名,利用反射 实例你的实体类(类名可以和表名保持一致,这样就不用写额外的
映射了),如果你只是想通过反射赋值的话,你也可以直接new个类;
3.方法调用:通过元数据,利用反射 得到你的set方法(方法名可以和字段名保持一致,否则你要写
出映射关系);追问

为什么直接过去get方法可以,过去set时报错怎么办。。

追答

可否把错误信息贴出来
兄弟,我看你的问题很眼熟,你是不是在百度知道问过好几次反射的问题呀,另外,我猜你用的是小米手机 ^^

追问

连手机都可以猜到,大哥不要黑我呀,我是个苦逼的程序猿。。

追答

争取帮你搞定
把你的testBean这个类的源码贴出来,尤其是set方法这块儿

追问

字段就是private类型的所以才建的get和set方法

追答

你的用法有问题,这样写

//因为你的set方法是有参数的,这里要写上参数类型
Method chap = testBean.class.getDeclaredMethod("setS1",String.class);
//同理,你要把值传给set方法
Object obj1 = chap.invoke(sod,"小米手机");

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-15
so esay
String path="com.wm.model.User";
Class clazz = class.forName(path);
User a=(User)clazz.new.newinstance(); //User类一定要有个无参构造函数
Method a = clazz.getMethod("SetName", String.class);
a.invoke(a,"张三");
这样就把值传到name里了追问

哥哥clazz.new.newinstance()是什么。。
我这个复制过来报错!

相似回答