製作報表前首先需要定義數據來源,實際用戶系統最長見的就是數據保存在數據庫中,並且在不斷更新中,使用數據庫數據來製作報表,並且報表內容會隨著數據庫的更新而更新。
FR天然支持這一點,只需要在服務器>定義數據連接中定義需要連接的數據庫,就可以自定義查詢語句查詢出需要的數據,從而製作報表,如下圖:
數據連接存儲在工程中,當用戶執行需要訪問數據庫的操作時這些連接被激活。
一個報表工程可以定義多個數據庫連接,所有信息都保存在appName/WEB-INF/resources/datasource.xml配置文件中。
可以通過JDBC、JNDI、SAP、XMLA和FineBI五種方式連接數據庫,當報表執行時需要訪問數據庫時這些連接才會被激活。
注:XMLA和FineBI連接的是多維數據庫,其中FineBI是連接帆軟的另一款BI產品的數據庫。
工具/原料
圖表插件:FineReport
電腦
方法/步驟
JDBC連接與JNDI連接的區別
JDBC連接數據庫
JDBC(Java Data Base Connectivity,Java數據庫連接)是一種用於執行SQL語句的Java API,可以為多種關係數據庫提供統一訪問,下面介紹JDBC連接數據庫的方法。
JNDI連接數據庫
JNDI(Java Naming and Directory Interface)是一個應用程序設計的API,為開發人員提供了查找和訪問各種命名和目錄服務的通用、統一的接口,類似JDBC都是構建在抽象層上。
JDBC 和JNDI連接數據庫哪個更有優勢
使用JNDI連接某個數據源,如名為test,該數據源的所連接的數據庫都在應用服務器端定義。因此JNDI連接數據源不需要關心具體的數據庫後臺是什麼?JDBC驅動程序是什麼?JDBC URL格式是什麼?訪問數據庫的用戶名和口令是什麼?甚至沒有數據庫連接池或連接管理。而是把這些問題交給J2EE容器來配置和管理,只需要對這些配置和管理進行引用即可。
在報表部署後,如果數據庫的相關參數變更,只需要重新修改配置文件中的JDBC參數,只要保證數據源的名稱不變,那麼數據連接就無需修改。由此可見,JNDI避免了報表與數據庫之間的緊耦合,和項目共用服務器的連接池,使應用更加易於配置、易於部署。
JDBC就是直接連接物理數據庫,連接數據庫比較快,但在程序中使用的話就比較煩瑣,每次連接都要有一定的編碼,和數據庫的連接需要手動關閉。
索引:
JDBC連接數據庫
JNDI連接數據庫
SAP連接數據庫
XMLA數據連接
FineBI數據連接