动态创建表示表中的行(由于复杂的SQL查询而返回的Resultset)的bean

时间:2013-09-04 05:39:17

标签: java sql reflection jdbc

让我们举个例子,我有两张桌子

table1 (
name varchar2,
id int,
customer bit, --or boolean
)

table2 (
name2 varchar2,
id2 int,
dob Date,
)

现在列的数量,名称和数据类型不同。它们将根据select * from table1select id2 from table2

等查询返回

现在可以创建一个bean,它可以动态地表示返回的行(就数字,名称和数据类型而言)吗?

例如对于table1,我应该能够创建像

这样的东西
class Table1{

private String name;
private int id;
private boolean customer;
//Corresponding getters and setters
}

table2

的方式相同

2 个答案:

答案 0 :(得分:0)

  

是否可以创建一个可以表示返回行的bean   (动态数量,名称和数据类型)?

,可以在Java中使用。使用JPAHibernate。使用Object映射您的行。

答案 1 :(得分:0)

解决方案可以探索ResultSetMetaData并迭代所有列:使用Javassist非常容易创建包含字段和相对访问者的POJO(您还可以查看DynaBean)。
如果使用特定的RDBMS类型,也许检测列的jdbc类型可能有点困难。