以Java编程方式获取数据库字段

时间:2015-08-12 14:52:19

标签: java jasper-reports

我有一个jrxml文件(如下所示),其中嵌入了数据库查询。现在,此查询将针对不同的数据库返回不同的列。由于列是变化的,我计划以编程方式加载jrxml文件,读取查询返回的字段(嵌入在jrxml中),然后将它们放在jrxml上

有两个问题

  1. 如何获取查询返回的字段名称(嵌入在jrxml中)
  2. 我们如何遍历这些字段,以便将它们放在jrxml
  3. Amy示例代码将不胜感激。

    请注意我的偏好是仅使用Jasper API。

    enter image description here

1 个答案:

答案 0 :(得分:0)

如果您不知道列名,您打算如何查询数据库?我能想到的唯一情况是你总是要选择所有列。

我认为您需要的是参数化查询,它允许您将列名称作为参数传递。请参阅this page on using report parameters

如果您确实希望始终选择所有表列,则在填写报表之前,您必须检索表元数据并将列名称作为参数传递给报表。如果您使用JDBC,则只需调用java.sql.Connection.getMetaData()并查询MetaData对象以获取列名。但是,硬编码SELECT *具有潜在的危险性,因为当新列插入表格时,结果集的大小会不断增加。