Java 动态创建表示表中一行的bean(由于复杂的SQL查询而返回的结果集)

Java 动态创建表示表中一行的bean(由于复杂的SQL查询而返回的结果集),java,sql,reflection,jdbc,Java,Sql,Reflection,Jdbc,举个例子,我有两张桌子 table1 ( name varchar2, id int, customer bit, --or boolean ) table2 ( name2 varchar2, id2 int, dob Date, ) 现在,列的编号、名称和数据类型有所不同。它们将根据查询返回,如select*from table1或select id2 from table2 现在是否可以创建一个bean来动态地表示返回的行(根据数字、名称和数据类型) 例如,对于表1,我应该能够创建如下

举个例子,我有两张桌子

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

table2 (
name2 varchar2,
id2 int,
dob Date,
)
现在,列的编号、名称和数据类型有所不同。它们将根据查询返回,如
select*from table1
select id2 from table2

现在是否可以创建一个bean来动态地表示返回的行(根据数字、名称和数据类型)

例如,对于表1,我应该能够创建如下内容

class Table1{

private String name;
private int id;
private boolean customer;
//Corresponding getters and setters
}
表2也是这样

是否可以创建一个bean来表示返回的行 (在数量、名称和数据类型方面)动态


是的,这在Java中是可能的。使用
JPA
Hibernate
。它将您的行映射到对象。

一个解决方案可以是浏览并迭代所有列:使用创建带有字段和相对访问器的POJO非常简单(您也可以查看)。

如果您使用的是特定的RDBMS类型,那么检测列的JDBC类型可能有点困难。

您考虑一些<代码>对象关系映射框架< /代码>吗?像
hibernate
?@bksantiagoop询问在运行时动态创建类。动态创建bean有什么意义?您将无法事先针对其方法进行编码。你可以只使用返回字段的
映射吗?如果我使用Map,我将如何区分查询返回的10000行?我想OP是在询问如何在运行时动态创建一个类。否则,我想他知道这个琐碎的答案。所以问题基本上是关于反思。