2 fanjinruo fanjinruo 于 2013.08.20 10:01 提问

将java的class存入数据库,这个叫什么?如何实现?

目前经理要求在做一个业务统计的程序,他要求把写好的类存入数据库,类比如是org.com.test.HelloDate,数据库就是存放这个,然后由启动统计的主方法调用数据库存放的这个类来实现统计,这个究竟在java里是什么原理?如何实现呢?求给位高手帮忙解答

5个回答

u012981921
u012981921   2014.02.27 16:15
已采纳

Java反射Reflect机制啊。

ClassLoader loader = Thread.currentThread().getContextClassLoader();
Class clazz = loader.loadClass("org.com.test.HelloDate");

//获取类的默认构造器并初始化HelloDate
Constructor constructor = clazz.getDeclaredConstructor((Class[])null);   
HelloDate instance = (HelloDate)constructor.newInstance();

//通过反射方法设置属性 
Method setXxxx = clazz.getMethod("setXxxx",String.class); 
setXxxx.invoke(instance,"xxxx");
...
return instance;

大概就这样了,具体关于java反射的东西可以google找找。

fanjinruo
fanjinruo 这种只适合没有框架的项目中使用,有spring的项目中只能使用getbean来实现
3 年多之前 回复
hubeilihao
hubeilihao   2013.11.10 13:46

把类存入数据库??他的意思是把那数据存入该类对应的表吧 在由别人调用表里的数据 实现统计功能

fanjinruo
fanjinruo   2013.11.12 09:40

不是,是把统计实现类的包路径存到数据库,然后程序去查询数据库得到这个类的包路径,并且自动加载这个类执行统计方法

dongtianliubuzhu
dongtianliubuzhu   2013.12.26 19:08

。。不太懂,是不是知道类的属性,一个个个存呗。。。

tigeryu
tigeryu   2014.05.03 20:38

这个里边涉及几个技术点。

首先是类的序列化,然后要通过ClassLoader进行动态类加载

这是一种思路

另外可以考虑通过drools或者groovy这样的引擎来实现代码的动态调用

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!