Birt报表使用连接池配置

现阶段我们在开发报表的时候,是使用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();
}
}

时间: 2024-10-21 09:09:07

Birt报表使用连接池配置的相关文章

Spring的JNDI数据源连接池配置示例及Spring对JNDI实现分析

在使用 Tomcat服务器 + SpringFramework 进行JavaEE项目的开发部署的时候可以在Tomcat的配置文件中进行JDBC数据源的配置,具体步骤如下(这里省略了工程的建立步骤):   1) 添加如下代码到tomcat的conf目录下的server.xml中: Xml代码   <Context>        <Resource name="jdbc/demoDB" auth="Container"        type=&qu

JDBC数据源连接池配置及应用_java

使用JDBC建立数据库连接的两种方式: 1.在代码中使用DriverManager获得数据库连接.这种方式效率低,并且其性能.可靠性和稳定性随着用户访问量得增加逐渐下降. 2.使用配置数据源的方式连接数据库,该方式其实质就是在上述方法的基础上增加了数据库连接池,这种方式效率高. 数据源连接池的方式连接数据库与在代码中使用DriverManager获得数据库连接存在如下差别: 1)数据源连接池的方式连接数据库是在程序中,通过向一个JNDI(Java Naming and  Directory In

tomcat 几种连接池配置代码(包括tomcat5.0,tomcat5.5x,tomcat6.0)_Tomcat

Tomcat6.0连接池配置 1.配置tomcat下的conf下的context.xml文件,在之间添加连接池配置: 复制代码 代码如下: <Resource name="jdbc/oracle" auth="Container" type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver" url=" jdbc:or

Tomcat+SQL Server2000连接池配置

server|server2000|sql 终于解决了困扰多天的连接池的问题,写下这编文章与大家一起分享.我是在tomcat5.5.9下配置的,tomcat5.5.X和以前的版本有一些差别,所以配置上也有差别.我就说一下在tomcat5.5.9配置的基本步骤:(确定你以安装好tomcat5.5.9.sql2000) 1.把数据库JDBC驱动拷贝到%TOMCAT_HOME%/common/lib和%TOMCAT_HOME%/webapps/yourweb/WEB-INF/lib下(我的web文件夹

Tomcat+SQL Server 2000连接池配置

终于解决了困扰多天的连接池的问题,写下这编文章与大家一起分享.我是在tomcat5.5.9下配置的,tomcat5.5.X和以前的版本有一些差别,所以配置上也有差别.我就说一下在tomcat5.5.9配置的基本步骤:(确定你以安装好tomcat5.5.9.sql2000) 1.把数据库JDBC驱动拷贝到%TOMCAT_HOME%/common/lib和%TOMCAT_HOME%/webapps/yourweb/WEB-INF/lib下(我的web文件夹名字叫quickstart) 这一步大家都知

Spring的JNDI数据源连接池配置时产生的疑问

问题描述 在进行Spring的数据源连接池的配置的时候,不能理解以下问题:运行如下代码:public static void main(String[] args) {org.springframework.jndi.JndiObjectFactoryBean jofb = new org.springframework.jndi.JndiObjectFactoryBean();javax.sql.DataSource ds = (javax.sql.DataSource)jofb;org.sp

websphere连接池配置

问题描述 websphere配置DB2v7.2的连接池,不知哪位高手可以帮帮我如何设置呢?急!! 解决方案 解决方案二:你说说出现什么问题了?关键点在于驱动的配置路径上解决方案三:系统是Linux前面jdbc提供程序那里因为db2是7.2版本不支持jcc我选用的是用户自定义.然后添加连接池的时候,找不到设置connecturl的地方,定制属性不知道该如何命名.希望能得到帮助!解决方案四:1.jdbc提供者创建一个DB2连接池数据源或者XA数据源(如果没有的话就自己配置)2.J2C认证数据条目上创

tomcat 5.5连接池配置,如何让工程为默认工程_Linux

只要在</host>之间加上这个就可以了 复制代码 代码如下: <Context docBase="C:/Program Files/Apache Software Foundation/Tomcat5.5/webapps/FengYue" path="" debug="0" reloadable="true" privileged="true"> <Resource name

MySQL---数据库从入门走向大神系列(十三)-BasicDataSource创建DataSource(DBCP连接池配置)

DBCP(DataBase connection pool),数据库连接池.是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件.单独使用dbcp需要2个包:commons-dbcp.jar,commons-pool.jar由于建立数据库连接是一个非常耗时耗资源的行为,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,用完后再放回去. 首先,下载必须的jar包 dbcp包,目前版本是2.1.1 : htt