現(xiàn)階段我們?cè)陂_發(fā)報(bào)表的時(shí)候,是使用jdbc鏈接數(shù)據(jù)庫的,為提高報(bào)表的運(yùn)行效率和穩(wěn)定性,使用連接池進(jìn)行管理。比較簡便和低耦合的解決辦法,使用jndi連接池。
jdbc和jndi的區(qū)別
JDBC -最基本的連接數(shù)據(jù)庫的方式, 每次對(duì)數(shù)據(jù)庫打交道的時(shí)候 ,連接數(shù)據(jù)庫是需要實(shí)例下你實(shí)現(xiàn)連接數(shù)據(jù)庫的方法或者類。 JNDI DataSource 英文全稱是:Java Naming and Directory Interface java 命明接口,當(dāng)服務(wù)啟動(dòng)時(shí) 事先把連接數(shù)據(jù)庫的已經(jīng)連好多條,具體多少條你可以設(shè)置,存放在tomcat容器里,用的時(shí)候可以直接使用, 不用再實(shí)例化得到連接, 相對(duì)與jdbc效率要快點(diǎn)
在eclipse設(shè)計(jì)報(bào)表的時(shí)候,我們使用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文件,配置代碼如下
2.在web.xml中加入配置
3.實(shí)例報(bào)表中數(shù)據(jù)源代碼
除了第7行 <property name="odaJndiName">java:comp/env/jdbc/travel_agency</property>,其余是我們的之前的配置。用了第7行的代碼,表示該報(bào)表支持jndi數(shù)據(jù)源,birt在運(yùn)行報(bào)表的時(shí)候,會(huì)先用jndi去連接,如果失敗了再用jdbc鏈接,這樣做的好處就是,我們?cè)陂_發(fā)報(bào)表的時(shí)候,沒有放到web環(huán)境中,可以使用jdbc,當(dāng)放到tomcat中,因?yàn)橛辛说?行的配置。默認(rèn)采用jdni連接。