快速业务通道

Birt报表使用连接池配置 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-24

Birt报表使用连接池配置

时间:2009-12-13 BlogJava 流腥鱼

现阶段我们在开发报表的时候,是使用jdbc链接数据库的,为提高报表的运行效率和稳定性,使用连接池进行管理。比较简便和低耦合的解决办法,使用jndi连接池。

jdbc和jndi的区别

JDBC -最基本的连接数据库的方式, 每次对数据库打交道的时候 ,连接数据库是需要实例下你实现连接数据库的方法或者类。

JNDI DataSource 英文全称是:Java Naming and Directory Interface java 命明接口,当服务启动时 事先把连接数据库的已经连好多条,具体多少条你可以设置,存放在tomcat容器里,用的时候可以直接使用, 不用再实例化得到连接, 相对与jdbc效率要快点

在eclipse设计报表的时候,我们使用jdbc链接数据库做测试,当到了tomcat运行环境中切换到jndi连接池,这是比较方便的开发方法。

实现步骤:

1.tomcat配置jndi连接池

在 {tomcat目录}\webapps\{项目名}\META-INF 中新增context.xml文件,配置代码如下

<resource-ref> <description>Database Source</description> <res-ref-name>jdbc/travel_agency</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>

3.实例报表中数据源代码

1 <data-sources> 2        <oda-data-source extensionID="org.eclipse.birt.report.data.oda.jdbc" name="数据源" id="227"> 3            <property name="odaDriverClass">com.mysql.jdbc.Driver</property> 4            <property name="odaURL">jdbc:mysql://192.168.1.100/travel_agency</property> 5            <property name="odaUser">itravel</property> 6            <encrypted-property name="odaPassword" encryptionID="base64">NzA5Mzk0</encrypted-property> 7            <property name="odaJndiName">java:comp/env/jdbc/travel_agency</property> 8        </oda-data-source> 9    </data-sources>

除了第7行 <property name="odaJndiName">java:comp/env/jdbc/travel_agency</property>,其余是我们的之前的配置。用了第7行的代码,表示该报表支持jndi数据源,birt在运行报表的时候,会先用jndi去连接,如果失败了再用jdbc链接,这样做的好处就是,我们在开发报表的时候,没有放到web环境中,可以使用jdbc,当放到tomcat中,因为有了第7行的配置。默认采用jdni连接。

4.步骤3中第6行密码的生成程序(JAVA程序)

package com.hollycrm.birt.security; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import sun.misc.BASE64Encoder; public class CreateBirtBase64Password { public static void main(String[] args) { InputStreamReader inStreamReader = new InputStreamReader(System.in); BufferedReader buffReader = new BufferedReader(inStreamReader); System.out.println("请输入需要通过Base64加密的字符串:"); String strSrcPassword = null; try { strSrcPassword = buffReader.readLine(); if (strSrcPassword != null) { // 通过用户输入的密码信息生成Base64的加密密码 String strBase64Password = new BASE64Encoder().encode(strSrcPassword.trim().getBytes()); System.out.println("您输入的原始密码为:" + strSrcPassword + "\r对应生成的Base64密码值为:" + strBase64Password); } } catch (IOException e) { e.printStackTrace(); } }

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号