我有一个jrxml文件(如下所示),其中嵌入了数据库查询。现在,此查询将针对不同的数据库返回不同的列。由于列是变化的,我计划以编程方式加载jrxml文件,读取查询返回的字段(嵌入在jrxml中),然后将它们放在jrxml上
有两个问题
答案 0 :(得分:0)
如果您不知道列名,您打算如何查询数据库?我能想到的唯一情况是你总是要选择所有列。
我认为您需要的是参数化查询,它允许您将列名称作为参数传递。请参阅this page on using report parameters。
如果您确实希望始终选择所有表列,则在填写报表之前,您必须检索表元数据并将列名称作为参数传递给报表。如果您使用JDBC,则只需调用java.sql.Connection.getMetaData()
并查询MetaData对象以获取列名。但是,硬编码SELECT *
具有潜在的危险性,因为当新列插入表格时,结果集的大小会不断增加。