posts - 15,comments - 29,trackbacks - 0

          現(xiàn)階段我們在開發(fā)報(bào)表的時候,是使用jdbc鏈接數(shù)據(jù)庫的,為提高報(bào)表的運(yùn)行效率和穩(wěn)定性,使用連接池進(jìn)行管理。比較簡便和低耦合的解決辦法,使用jndi連接池。

           

          jdbc和jndi的區(qū)別

          JDBC -最基本的連接數(shù)據(jù)庫的方式, 每次對數(shù)據(jù)庫打交道的時候 ,連接數(shù)據(jù)庫是需要實(shí)例下你實(shí)現(xiàn)連接數(shù)據(jù)庫的方法或者類。
          JNDI DataSource 英文全稱是:Java Naming and Directory Interface java 命明接口,當(dāng)服務(wù)啟動時 事先把連接數(shù)據(jù)庫的已經(jīng)連好多條,具體多少條你可以設(shè)置,存放在tomcat容器里,用的時候可以直接使用, 不用再實(shí)例化得到連接, 相對與jdbc效率要快點(diǎn)

           

           

          在eclipse設(shè)計(jì)報(bào)表的時候,我們使用jdbc鏈接數(shù)據(jù)庫做測試,當(dāng)?shù)搅藅omcat運(yùn)行環(huán)境中切換到j(luò)ndi連接池,這是比較方便的開發(fā)方法。

          實(shí)現(xiàn)步驟:

          1.tomcat配置jndi連接池

          在 {tomcat目錄}\webapps\{項(xiàng)目名}\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.實(shí)例報(bào)表中數(shù)據(jù)源代碼

           

          1 <data-sources>
          2        <oda-data-source extensionID="org.eclipse.birt.report.data.oda.jdbc" name="數(shù)據(jù)源" 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行的代碼,表示該報(bào)表支持jndi數(shù)據(jù)源,birt在運(yùn)行報(bào)表的時候,會先用jndi去連接,如果失敗了再用jdbc鏈接,這樣做的好處就是,我們在開發(fā)報(bào)表的時候,沒有放到web環(huán)境中,可以使用jdbc,當(dāng)放到tomcat中,因?yàn)橛辛说?行的配置。默認(rèn)采用jdni連接。


           

          posted on 2009-03-19 10:46 流腥魚 閱讀(3655) 評論(2)  編輯  收藏

          FeedBack:
          # re: Birt報(bào)表使用連接池配置
          2009-03-20 21:52 | naruke
          請教下,你的BIRT跟WEB項(xiàng)目結(jié)合是利用BIRT的VIEW Servlet還是利用report engine 呢?
          是否會有啟動BIRT 報(bào)表引擎;性能比較差的情況呢?
          期待你的回答,謝謝。  回復(fù)  更多評論
            
          # re: Birt報(bào)表使用連接池配置
          2009-03-21 02:11 | 流腥魚
          @naruke
          我用的是BIRT的VIEW Servlet,第一次加載報(bào)表比較慢。
            回復(fù)  更多評論
            

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 阜南县| 冕宁县| 唐河县| 七台河市| 江门市| 舟山市| 修文县| 皮山县| 安陆市| 扶风县| 阿尔山市| 潞西市| 广宁县| 谷城县| 都昌县| 富锦市| 溧阳市| 土默特右旗| 庐江县| 奈曼旗| 山西省| 高阳县| 都江堰市| 湖州市| 深泽县| 浦北县| 图们市| 北京市| 方城县| 永善县| 集安市| 贵港市| 阿瓦提县| 上栗县| 襄樊市| 鹤峰县| 玉林市| 赤壁市| 内乡县| 丰城市| 锡林郭勒盟|