【问题标题】:change Birt report datasource from java从java更改Birt报告数据源
【发布时间】:2014-03-18 10:28:11
【问题描述】:

我们在 eclips 报表设计中创建了 Birt 报表,我们使用 Birt jdbc 数据源连接到一个 derby 数据库。 现在我们将使用与 mysql 数据库相同的报告。每次我们需要在每个报告中编辑这个数据源。 我们希望在 java/maven 中有一个属性,我们可以在其中更改 Driver ClassDatabase URL

我们已经按照此链接上的说明进行操作 How to set a datasource for a BIRT report programmatically?

但在这里他将在运行时使用动态数据库 url。 但是不希望在运行时这样做,它必须永久更改,直到我们通过 maven 再次更改它。

【问题讨论】:

    标签: java maven derby birt


    【解决方案1】:

    我们找到了解决方案。 在 birt 报告中我们使用 jdbc 数据源(属性绑定):

    if ( params["database"] == "derby" ){
         "jdbc:derby://localhost:1527/databaseName;user=user;password=password";
    }else if ( params["database"] == "mysql" ) {
         "jdbc:mysql://localhost:3306/databaseName?user=root";
    }
    

    所以我们创建了一个参数,我们可以在运行时选择 derby 或 mysql。

    我们还使用报告网络查看器,因此我们在网页中显示此报告:

    <birt:viewer id="WebApp" reportDesign="report.rptdesign" format="html" ></birt:viewer>
    

    现在我们像这样在这个查看器中传递参数:

    <birt:viewer id="WebApp" reportDesign="report.rptdesign" format="html" >
          <birt:param name="database" value='mysql'></birt:param>
    </birt:viewer>
    

    参数值将通过使用 maven 配置文件自动更改。

    【讨论】:

    • 我认为您应该使用连接存储(右键单击数据源 > 外部化到连接配置文件)。如果我们不加密连接存储,我们可以利用其中的 maven 属性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 2021-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多