posts - 15,comments - 29,trackbacks - 0

现阶段我们在开发报表的时候,是使用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文件,配置代码如下

<?xml version="1.0" encoding="UTF-8"?>
<Context>
 
<Resource
      
auth="Container"
      name
="jdbc/travel_agency"
      type
="javax.sql.DataSource"
      maxIdle
="5"
      maxWait
="-1"
   driverClassName
="com.mysql.jdbc.Driver"
      username
="itravel"
   password
="709394"
      url
="jdbc:mysql://192.168.1.100/travel_agency?useUnicode=true&amp;characterEncoding=UTF-8"
      maxActive
="10"/>
</Context>

2.在web.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连接。


 

posted on 2009-03-19 10:46 流腥鱼 阅读(3625) 评论(2)  编辑  收藏

FeedBack:
# re: Birt报表使用连接池配置
2009-03-20 21:52 | naruke
请教下,你的BIRT跟WEB项目结合是利用BIRT的VIEW Servlet还是利用report engine 呢?
是否会有启动BIRT 报表引擎;性能比较差的情况呢?
期待你的回答,谢谢。  回复  更多评论
  
# re: Birt报表使用连接池配置
2009-03-21 02:11 | 流腥鱼
@naruke
我用的是BIRT的VIEW Servlet,第一次加载报表比较慢。
  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: