BIRT 2.2.2 运行时使用已有的java.sql.Connection来生成报表
???注:本文实现的思路不是原创,思路原文来自:
http://birtworld.blogspot.com/2005/12/using-supplied-connection-with-birt.html
?
?? 本文将介绍BIRT2.2 详细的扩展与配置:
?
?? 在ECLIPSE中新建一个工程 new->?Bussiness Intelligence Report Tools?-> Web Project 名字:MyBirt
并设置好服务器信息(本文选用Tomcat5.5、JDK1.5)。
?? 建好工程以后,需要添家JDBC驱动程序到报表引擎中,本例连接ORACLE,因此将ORACLE的JDBC驱动包复制到 工程站点下的 /WEB-INF/platform/plugins/org.eclipse.birt.report.data.oda.jdbc_xxxxxxx/drivers目录下。
?? 接下来就是继承OdaJdbcDriver类了,再此之前需要在ClassPath中Add oda-jdbc.jar 和 org.eclipse.datatools.connectivity.oda_xxxxxxxxxxxx.jar这两个包,前者位于上边提到的drivers路径的上一级,后着则在plugins下。 新建一个Class:MyJdbcDriver,指定到某个包路径下,代码如下:
//... contextMap.put(MyJdbcDriver.DATASOURCE_KEY_CONNECTION, conn); //conn为系统中获得的数据库连接 task.setAppContext( contextMap ); //IRunAndRenderTask //...
?这样,无论在设计时指定了什么数据源,都会在运行时通过已有的conn连接数据库了。
?由于是这两天才接触的BIRT,文章有不足之处还请多多指正,谢谢。
1 楼 RogerTu 2008-06-17 通过变相修改BIRT自带的JDBC ODA Driver实现,也许能工作,但风险较大,例如会不会导致其他问题,在BIRT升级后依然有效吗等。