birt用脚本javascript创建数据源,并从配置文件中读数据库信息

本文介绍了一种使用脚本动态加载数据库配置的方法。通过定义参数指定properties文件路径,并在beforeOpen事件中读取文件,实现从properties文件动态获取数据源配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

可以用script去解决第一个问题。
可以定义一个参数去指定properties文件的路径,然后创建datasource。
在datasource的script中编辑beforeOpen事件,参考下面的代码:

=======================================
importPackage( Packages.java.io );
importPackage( Packages.java.util );

fin = new java.io.FileInputStream( new String(params["propFile"]) );
props = new java.util.Properties( );
props.load(fin);

extensionProperties.odaURL = new String(props.getProperty("url"));
extensionProperties.odaDriverClass = new String(props.getProperty("driver"));
extensionProperties.odaUser = new String(props.getProperty("userid"));
extensionProperties.odaPassword = new String(props.getProperty("password"));

fin.close();

这样就可以从properties文件中动态读取数据源配置信息。
----------------------------------------------------------------------------------------------------------------

你可以把配置文件在代码里写死,也可以定义为报表参数,请注意params["propFile"]这里。
这里的代码只支持绝对路径,在deployment的情况下可能不太适用,可以修改一下支持相对路径,相对于你发布的应用根目录。

importPackage( Packages.java.io,Packages.java.util,Packages.java.net );
importPackage( Packages.javax.servlet.http );

req = reportContext.getHttpServletRequest( );
propPath = new String(params["propFile"]);
if ( propPath.charAt(0) != "/" )
propPath = "/" + propPath;

url = req.getSession( ).getServletContext( ).getResource( propPath );
if ( url != null )
{
props = new java.util.Properties( );
props.load( url.openStream( ) );

extensionProperties.odaURL = new String(props.getProperty("url"));
extensionProperties.odaDriverClass = new String(props.getProperty("driver"));
extensionProperties.odaUser = new String(props.getProperty("userid"));
extensionProperties.odaPassword = new String(props.getProperty("password"));
}

[url]http://blog.youkuaiyun.com/abeetle/archive/2007/04/04/1551634.aspx[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值