动态地向JavaBean添加变量

时间:2012-07-23 05:59:52

标签: java

有没有办法根据数据库表列名称和相关数据动态构建JavaBean?例如,如果我在db表中返回5列,我需要创建一个javaBean,其中包含5个列名作为变量及其getter / setter。下一次,如果我得到7列,我可以用7个变量创建一个javaBean。

5 个答案:

答案 0 :(得分:1)

我认为您可以使用字节码操作来完成此操作。

2个主要的库是:

答案 1 :(得分:0)

我不相信你可以拥有一个带有变量字段的对象,但你可以使用Map来存储结果。这可能是你最想要的。

答案 2 :(得分:0)

好吧,它不一定是一个“动态”bean,你可以使用Map变体,比如HashMap。没有错。

Map<String,Object> results = new HashMap<String,Object>();
// .. fill results ...
// .. then
Object someData = results.get("someDataKey");

答案 3 :(得分:0)

答案是否定的。您不能在运行时询问变量。你能做的是。

Map<String, Map> results = new HashMap<String, Map>();
// Associate each column with a new map and put it in results.
// Take each variable from column and associate it with the corresponding column's hashmap.

答案 4 :(得分:0)

您可以使用DynaBean

DynaBean是一个Java对象,它支持可以动态修改其名称和数据类型以及值的属性。在可行的最大程度上,BeanUtils包的其他组件将识别这些bean并将它们视为标准JavaBeans,以便检索和设置属性值。