Is there a way to build a JavaBean dynamically based on the DB table column names and assoicated data? For example, if I get back of 5 columns in a db table, I need to create a javaBean with those 5 column names as variables and their getters/setters as well. Next time, if I get 7 columns, I can create a javaBean with 7 variables.
问问题
2158 次
5 回答
1
我认为您可以通过字节码操作来做到这一点。
2个主要库是:
- javassist - http://www.csg.ci.iu-tokyo.ac.jp/~chiba/javassist/
- asm - http://asm.ow2.org/
于 2012-07-23T06:06:32.017 回答
0
好吧,它不必是“动态”bean,您可以只使用 Map 变体,例如HashMap
. 没有错。
Map<String,Object> results = new HashMap<String,Object>();
// .. fill results ...
// .. then
Object someData = results.get("someDataKey");
于 2012-07-23T06:04:48.187 回答
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.
于 2012-07-23T06:09:04.923 回答
0
我不相信您可以拥有具有可变字段的对象,但您可以使用 Map 来存储结果。这可能是最接近你想要的。
于 2012-07-23T06:02:56.363 回答
0
您可以使用DynaBean:
DynaBean 是一个 Java 对象,它支持可以动态修改其名称和数据类型以及值的属性。在最大程度上可行,BeanUtils 包的其他组件将识别这些 bean 并将它们视为标准 JavaBeans,以便检索和设置属性值。
于 2012-07-23T06:19:49.740 回答