锘??xml version="1.0" encoding="utf-8" standalone="yes"?>WWW亚洲色大成网络.COM ,亚洲国产精品人人做人人爱,亚洲乱码中文字幕久久孕妇黑人http://www.tkk7.com/gdufo/category/54984.htmlzh-cnSat, 06 Feb 2016 11:11:36 GMTSat, 06 Feb 2016 11:11:36 GMT60 Mondrian 浣跨敤鏁欑▼ http://www.tkk7.com/gdufo/archive/2016/02/06/429302.htmlgdufogdufoSat, 06 Feb 2016 10:18:00 GMThttp://www.tkk7.com/gdufo/archive/2016/02/06/429302.html

http://blog.csdn.net/evangel_z/article/details/29585571

閫氳繃鏈暀紼嬶紝鎮(zhèn)ㄥ皢浜?jiǎn)瑙e堫C粈涔堟槸Mondiran,鍙?qiáng)濡備綍灏唌ondrian鏀寔娣誨姞鍒版?zhèn)ㄧ殑Java Web欏圭洰涓?/p>

鍦ㄩ槄璇繪湰鏁欑▼涔嬪墠錛屾?zhèn)ㄥ彲鑳介渶瑕佹帉鎻′互涓嬫蹇碉細(xì)

OLAP(鑱旀満鍒嗘瀽澶勭悊On-Line Analytical Processing)錛屾?zhèn)ㄥ彲浠ラ氳繃闃呰ROLAP鐨勬蹇?pptx鏉ヤ簡(jiǎn)瑙LAP

MDX澶氱淮琛ㄨ揪寮忥紝鎮(zhèn)ㄥ彲浠ラ氳繃闃呰MDX鐨勫熀鏈娉曞強(qiáng)姒傚康.pptx鏉ヤ簡(jiǎn)瑙DX


1. Mondrian鏄粈涔堬紵

Mondrian鏄竴涓紑婧愰」鐩備竴涓敤Java鍐欐垚鐨凮LAP寮曟搸銆傚畠鐢∕DX璇█瀹炵幇鏌ヨ錛屼粠鍏崇郴鏁版嵁搴?RDBMS)涓鍙栨暟鎹傜劧鍚庣粡榪嘕ava API浠ュ緇寸殑鏂瑰紡瀵圭粨鏋滆繘琛屽睍紺恒?/p>

Mondrian鐨勪嬌鐢ㄦ柟寮忓悓JDBC椹卞姩綾諱技銆傚彲浠ラ潪甯告柟渚跨殑涓庣幇鏈夌殑Web欏圭洰闆嗘垚

1.1 Mondrian鐨勪綋緋葷粨鏋?Architecture)

Mondrian OLAP 緋葷粺鐢卞洓涓眰緇勬垚; 浠庢渶緇堢敤鎴峰埌鏁版嵁涓績(jī), 欏哄簭涓? 
1.1.1 琛ㄧ幇灞?the presentation layer)
1.1.2 緇村害灞?the dimensional layer)
1.1.3 闆嗗悎灞?the star layer)
1.1.4 瀛樺偍灞?the storage layer)
緇撴瀯鍥懼涓?


1.1.1 琛ㄧ幇灞?the presentation layer)

琛ㄧ幇灞傚喅瀹氫簡(jiǎn)鏈緇堢敤鎴峰皢鍦ㄤ粬浠殑鏄劇ず鍣ㄤ笂鐪嬪埌浠涔? 鍙?qiáng)浠栦滑濡備綍鍚尵p葷粺浜х敓浜や簰銆?/p>

鏈夎澶氭柟娉曞彲浠ョ敤鏉ュ悜鐢ㄦ埛鏄劇ず澶氱淮鏁版嵁闆? 鏈?pivot 琛?(涓縐嶄氦浜掑紡鐨勮〃), pie, line 鍜屽浘琛?bar charts)銆傚畠浠彲浠ョ敤Swing 鎴?JSP鏉ュ疄鐜般?/p>

琛ㄧ幇灞備互澶氱淮"鏂囨硶(grammar)(緇淬佸害閲忋佸崟鍏?”鐨勫艦寮忓彂鍑烘煡璇紝鐒跺悗OLAP鏈嶅姟鍣ㄨ繑鍥炵粨鏋溿?/p>

1.1.1.1 Jpivot琛ㄧ幇灞?br />

JPivot 鏄疢ondrian鐨勮〃鐜板眰TagLib錛屼竴鐩翠繚鎸佺潃鑹ソ鐨勫紑鍙戣繘搴︺?

鎮(zhèn)ㄥ彲浠ラ氳繃璁塊棶jpivot鐨勫畼鏂圭綉绔?a target="_blank" >http://jpivot.sourceforge.net/浠ヨ幏寰楁洿澶氱殑甯姪鍙?qiáng)鏀?/p>

jpivot浣跨敤XML/ XSLT娓叉煋OLAP鎶ヨ〃:

JPivot 浣跨敤 WCF (Web Component Framework)  錛屽熀浜嶺ML/XSLT鏉ユ覆鏌揥eb UI緇勪歡銆傝繖浣垮畠鏄懼緱鍗佸垎鍙︾被銆備笉榪囷紝OLAP鎶ヨ〃榪欑闈炲父澶嶆潅浣嗗張鏈夎寰嬪彲寰殑涓滆タ錛屾渶閫傚悎浣跨敤XSLT鏉ユ覆鏌撱?br />

jpivot瀹屽叏鍩轟簬JSP+TagLib錛?br />

JPivot鍙﹀涓涓彲鑳戒嬌浜轟笉鎯殑鍦版柟鏄畠瀹屽叏鍩轟簬taglib鑰屼笉鏄ぇ瀹剁啛鎮(zhèn)夌殑MVC妯″紡銆?/p>

浣嗗畠鍙互寰堟柟渚跨殑灝嗗緇存暟鎹睍紺虹粰鏈緇堢敤鎴鳳紝濡備笅琛ㄦ牸錛?br />


jpivot鍏跺疄鏄竴涓嚜瀹氫箟jsp鐨勬爣絳懼簱銆傚畠鍩轟簬XML/XSLT閰嶇疆鏉ョ敓鎴愮浉搴旂殑html銆傛墍騫哥殑鏄紝鎴戜滑騫朵笉闇瑕佷簡(jiǎn)瑙eお澶氬叧浜庤繖鏂歸潰鐨勫唴瀹癸紝鎴戜滑鍙鎺屾彙鐩稿簲jsp鏍囩鐨勪嬌鐢ㄥ嵆鍙?/p>

鍦ㄦ湰鏁欑▼鐨勫疄渚嬩腑錛屾垜浠皢浼?xì)瀵逛竴浜涘父鐢ㄥ埌鐨刯pivot鏍囩榪涜璁茶В銆?/p>

鎮(zhèn)ㄨ繕鍙互閫氳繃姹夊寲WEB-INF/jpivot涓嬬殑xml鏂囦歡鏉ュ畬鎴愬jpivot鐨勬眽鍖栧伐浣?/p>

1.1.2 緇村害灞?the dimensional layer)

緇村害灞傜敤鏉ヨВ鏋愩侀獙璇佸拰鎵цMDX鏌ヨ瑕佹眰銆?/p>

涓涓狹DX鏌ヨ瑕侀氳繃鍑犱釜闃舵鏉ュ畬鎴愶細(xì)棣栧厛鏄綆楀潗鏍囪醬錛坅xes錛夛紝鍐嶈呰綆楀潗鏍囪醬axes 涓璫ell鐨勫箋?/p>

 涓轟簡(jiǎn)鎻愰珮鏁堢巼錛岀淮搴﹀眰鎶婅姹傛煡璇㈢殑鍗曞厓鎴愭壒鍙戦佸埌闆嗗悎灞傦紝鏌ヨ杞崲鍣ㄦ帴鍙楁搷浣滅幇鏈夋煡璇㈢殑璇鋒眰錛岃屼笉鏄姣忎釜璇鋒眰閮藉緩绔嬩竴涓狹DX 澹版槑銆?br />

1.1.3 闆嗗悎灞?the star layer)

闆嗗悎灞傝礋璐g淮鎶ゅ拰鍒涘緩闆嗗悎緙撳瓨錛屼竴涓泦鍚堟槸鍦ㄥ唴瀛樹(shù)腑緙撳瓨?shù)竴緇勫崟鍏冨鹼紝 榪欎簺鍗曞厓鍊肩敱涓緇勭淮鐨勫兼潵紜畾銆?/p>

緇村害灞傚榪欎簺鍗曞厓鍙戝嚭鏌ヨ璇鋒眰錛屽鏋滄墍鏌ヨ鐨勫崟鍏冨間笉鍦ㄧ紦瀛樹(shù)腑錛屽垯闆嗗悎綆$悊鍣?aggregation manager)浼?xì)鍚戝瓨鍌ㄥ眰鍙戝嚭鏌ヨ璇锋?br />

1.1.4 瀛樺偍灞?the storage layer)

瀛樺偍灞傛槸涓涓叧緋誨瀷鏁版嵁搴?RDBMS)銆傚畠璐熻矗鍒涘緩闆嗗悎鐨勫崟鍏冩暟鎹紝鍜屾彁渚涚淮琛ㄧ殑鎴愬憳銆?br />

1.2 API

Mondrian 涓哄鎴風(fēng)鎻愪緵涓涓敤浜庢煡璇㈢殑API

鍥犱負(fù)鍒扮洰鍓嶄負(fù)姝?騫舵病鏈変竴涓氱敤鐨勭敤浜嶰LAP鏌ヨ鐨凙PI,鍥犳Mondrian鎻愪緵浜?jiǎn)瀹兛U佹湁鐨凙PI.

灝界濡傛,涓涓父浣跨敤JDBC鐨勪漢灝嗗悓鏍峰彂鐜板畠寰堢啛鎮(zhèn)?涓嶅悓涔嬪浠呭湪浜庡畠浣跨敤鐨勬槸MDX鏌ヨ璇█,鑰岄潪SQL

涓嬮潰鐨刯ava鐗囨灞曠ず浜?jiǎn)濡備綍杩炴帴鍒癕ondrian,鐒跺悗鎵ц涓涓煡璇?鏈鍚庢墦鍗扮粨鏋?

  1. import mondrian.olap.*;  
  2.     import java.io.PrintWriter;  
  3.     Connection connection = DriverManager.getConnection("Provider=mondrian;"   
  4.             +"Jdbc=jdbc:odbc:MondrianFoodMart;"   
  5.             +"Catalog=/WEB-INF/FoodMart.xml;",null,false);  
  6.     Query query = connection.parseQuery("SELECT {[Measures].[Unit Sales], [Measures].[Store Sales]} on columns,"   
  7.             +" {[Product].children} on rows "   
  8.             +"FROM [Sales] " +"WHERE ([Time].[1997].[Q1], [Store].[CA].[San Francisco])");  
  9.     Result result = connection.execute(query);  
  10.     result.print(new PrintWriter(System.out));  

涓嶫DBC綾諱技,涓涓狢onnection鐢盌riverManager鍒涘緩,Query 瀵硅薄綾諱技浜嶫DBC 鐨凷tatement,瀹冮氳繃浼犻掍竴涓狹DX璇彞鏉ュ垱寤?Result瀵硅薄綾諱技浜嶫DBC鐨凴esultSet,鍙笉榪囧畠閲岄潰淇濆瓨鐨勬槸澶氱淮鏁版嵁

鎮(zhèn)ㄥ彲浠ラ氳繃鏌ョ湅Mondrian甯姪鏂囨。閲岀殑javadoc鏉ヨ幏鍙栨洿澶氬叧浜嶮ondrian API鐨勮祫鏂?br />

閫氳繃涓婇潰鐨勪粙緇嶏紝鎮(zhèn)ㄥ簲璇ュmondrian鐨勪綋緋繪湁涓涓熀鏈殑浜?jiǎn)瑙c?/p>

涓嬮潰鎴戜滑灝嗛氳繃涓涓畝鍗曠殑渚嬪瓙鏉ュ姞娣辨?zhèn)ㄧ殑鐞嗚В銆?br />


2. 涓涓畝鍗曠殑Mondrian渚嬪瓙

鐜板湪璁╂垜浠敤涓涓畝鍗曠殑渚嬪瓙鏉ヨ鏄庡皢Mondrian鏀寔娣誨姞鍒版?zhèn)╦ava web鐨勫叿浣撴楠ゃ?br />

2.1 鍑嗗寮鍙戝伐鍏峰強(qiáng)鐜

鏈祴璇曢渶瑕佺殑鐜錛?br /> 鎿嶄綔緋葷粺錛歐indows 2000;
Web鏈嶅姟鍣細(xì)tomcat6.0錛?br /> 鍏崇郴鏁版嵁搴擄細(xì)sql server 2000錛?br /> 寮鍙戝伐鍏鳳細(xì)eclipse + myeclipse;
      JDBC椹卞姩錛歫tds-1.2.2;

銆        鎮(zhèn)ㄥ彲浠ュ湪http://tomcat.apache.org/涓婁笅杞藉埌tomcat鐨勬渶鏂扮増鏈強(qiáng)甯姪錛?br /> 銆銆    鎮(zhèn)ㄥ彲浠ュ湪http://www.myeclipseide.com/涓婁笅杞藉埌myeclipse鐨勬渶鏂扮増鏈強(qiáng)鐩稿簲鐨別clipse寮鍙戝鉤鍙扮増鏈?br />

2.2 鍑嗗Mondrian璧勬簮錛?/h2>

浠?a target="_blank" >http://sourceforge.net/projects/mondrian/涓嬭澆Mondrian鐨勬渶鏂扮増鏈?鐩墠鐗堟湰涓?.0錛屽ぇ綰︽湁50M錛嬪ぇ灝?銆?br />


2.3 鍒涘緩欏圭洰

鍚姩eclipse銆?/p>

鍦╡clipse涓柊鍒涘緩涓涓獁eb欏圭洰錛屽悕涓篢ezz銆傛敞鎰忛渶瑕佸姞鍏STL鏀寔銆?/p>

鍏蜂綋姝ラ濡備笅錛?/p>

2.3.1  鎵撳紑鏂板緩web欏圭洰瀵硅瘽妗?/h3>



涓涓柊欏圭洰Tezz鐨勬枃浠剁粨鏋勫涓?


2.4 娣誨姞蹇呴』鐨勬枃浠?/h2>

灝嗕笅杞界殑鍘嬬緝鍖呰繘琛岃В鍘嬨傚畬鎴愬悗錛岃繘鍏ユ枃浠跺す鍙互鐪嬪埌濡備笅鐩綍緇撴瀯銆傚弻鍑昏繘鍏ib鏂囦歡澶廣?br />


Lib鏂囦歡澶規(guī)湁濡備笅鍐呭錛氭敞鎰忓埌榪欓噷鐨刴ondrian.war鏂囦歡鏄竴涓彲鐩存帴甯冪講鐨勯」鐩紝鎴戜滑闇瑕佸皢瀹冭В鍘嬶紝鐒跺悗浠庝腑鍙栧嚭鎴戜滑鎵闇瑕佺殑鏂囦歡銆?寤鴻灝嗗叾鎵╁睍鍚嶆敼鎴恴ip錛岀劧鍚庣洿鎺ュ彸閿В鍘?


榪涘叆瑙e帇鍚庣殑鏂囦歡澶癸紝閫変腑jpivot銆亀cf浜屼釜鏂囦歡澶瑰強(qiáng)busy.jsp銆乪rror.jsp銆乼estpage.jsp涓変釜鏂囦歡錛屾垜浠渶瑕佸皢榪欎簺璧勬簮澶嶅埗鍒版垜浠祴璇曢」鐩殑WebRoot鏂囦歡澶逛腑銆傛寜ctrl+C閿鍒躲?br />


娉細(xì)jpivot銆亀cf榪欎袱涓枃浠跺す鍖呭惈mondrian浣跨敤鐨勫浘鍍忓拰css鏂囦歡銆侭usy.jsp鏄劇ず絳夊緟欏甸潰銆乪rror.jsp鏄劇ず鍑洪敊欏甸潰銆乼estpage.jsp榪欐枃浠剁殑鐢ㄥ灝嗗湪鍚庨潰浠嬬粛銆?/p>

鍒囨崲鍒癳clipse鐣岄潰錛屽湪鎴戜滑鐨凾ezz欏圭洰鐨刉ebRoot鏂囦歡澶瑰鍙沖嚮榧犳爣錛屽湪寮瑰嚭鐨勮彍鍗曚腑閫夋嫨Paste(綺樿創(chuàng))鍗沖彲


綺樿創(chuàng)瀹屾垚鍚庣殑欏圭洰緇撴瀯濡備笅


娉ㄦ剰錛氬洜涓烘垜浠繕鏈皢鎵鏈夎祫鏂欏鍒跺埌欏圭洰涓紝鍥犳eclipse浼?xì)鏄窘C洪敊璇浘鏍?br />

鏈鍚庤繘鍏EB-INF鏂囦歡澶?鍦ㄤ笂闈㈡楠や腑瑙e帇鐨勯」鐩枃浠秏ondrian.war閲?錛岄変腑jpivot銆乴ib銆亀cf榪欎笁涓枃浠跺す錛屽悓鏍烽渶瑕佸鍒跺畠浠埌嫻嬭瘯欏圭洰鐨刉EB-INF鏂囦歡澶逛腑銆?br />


Jpivot銆亀cf榪欎袱涓枃浠跺す鍖呭惈jpivot鍜寃cf鐢ㄤ簬鐢熸垚鐢ㄦ埛鐣岄潰鐨勯厤緗枃浠?*.xml銆?.xsl)鍙?qiáng)鏍嚱{炬枃浠?*.tld)鐨勫畾涔夈侺ib鏂囦歡澶瑰寘鍚殑鏄痬ondrian鎵瑕佺敤鐨刯ava鍖呫?br />

鍒囨崲鍒癳clipse鐣岄潰錛屽湪鎴戜滑鐨凾ezz欏圭洰鐨刉ebRoot鏂囦歡澶瑰鍙沖嚮榧犳爣錛屽湪寮瑰嚭鐨勮彍鍗曚腑閫夋嫨Paste(綺樿創(chuàng))


鑷蟲(chóng)Mondrian鐨勬敮鎸佹坊鍔犲畬姣曪紝涓嬮潰鎴戜滑灝嗛厤緗畐eb.xml錛岃鎴戜滑鐨勯」鐩兘澶熶嬌鐢ㄥ埌mondrian鐨勫姛鑳姐?br />

2.5 閰嶇疆web.xml

鐢╡clipse鎵撳紑鎴戜滑鍦ㄤ笂闈㈣В鍘嬬殑甯冪講欏圭洰鐨刉EB-INF/web.xml鏂囦歡


榪囨護(hù)鍣?filter)

澶嶅埗濡備笅鎵紺虹殑xml浠g爜鍒版垜浠祴璇曢」鐩甌ezz鐨剋eb.xml鏂囦歡涓?/p>

浣滅敤錛氳繖涓繃婊ゅ櫒鍦ㄨ闂?testpage.jsp鍓嶈璋冪敤銆傚畠琚璁℃垚jpivot鐨勫墠绔帶鍒跺櫒錛岀敤浜庡垽鏂茍灝嗙敤鎴風(fēng)殑璇鋒眰鍙戦佸埌鏌愪釜欏甸潰銆?/p>

娉細(xì)鍦ㄥ疄闄呴」鐩腑鍙互浣跨敤鎮(zhèn)ㄨ嚜宸卞畾涔夌殑servlet鎴栦嬌鐢ㄥ叾浠栨妧鏈潵鏇夸唬瀹冧互鎻愪緵鏇村鐨勫姛鑳?br />

  1.  <filter>  
  2.     <filter-name>JPivotController</filter-name>  
  3.     <filter-class>com.tonbeller.wcf.controller.RequestFilter</filter-class>  
  4.     <init-param>  
  5.       <param-name>indexJSP</param-name>  
  6.       <param-value>/index.html</param-value>  
  7.       <description>濡傛灉榪欐槸涓涓柊鐨勪細(xì)璇濓紝鍒欒漿鍒版欏甸潰</description>  
  8.     </init-param>  
  9.     <init-param>  
  10.       <param-name>errorJSP</param-name>  
  11.       <param-value>/error.jsp</param-value>  
  12.       <description>鍑洪敊鏃舵樉紺虹殑欏甸潰</description>  
  13.     </init-param>  
  14.     <init-param>  
  15.       <param-name>busyJSP</param-name>  
  16.       <param-value>/busy.jsp</param-value>  
  17.       <description>榪欎釜欏甸潰鐢ㄤ簬褰撶敤鎴風(fēng)偣鍑諱竴涓煡璇㈡椂錛屽湪榪欎釜鏌ヨ榪樻湭灝嗙粨鏋滆繕鍥炵粰鐢ㄦ埛鏃舵墍鏄劇ず鐨勭晫闈?lt;/description>  
  18.     </init-param>  
  19. </filter>  
  20.   
  21.   <filter-mapping>  
  22.     <filter-name>JPivotController</filter-name>  
  23.     <url-pattern>/testpage.jsp</url-pattern>  
  24.   </filter-mapping>  
澶嶅埗涓嬮潰鐨刲istener鍒版垜浠殑web.xml鏂囦歡涓?鐢ㄤ簬鍒濆鍖栦竴浜涜祫婧?
  1. <listener>  
  2.     <listener-class>mondrian.web.taglib.Listener</listener-class>  
  3.   </listener>  
  4.   
  5.   <!– 璧勬簮鍒濆鍖?->  
  6.   <listener>  
  7.     <listener-class>com.tonbeller.tbutils.res.ResourcesFactoryContextListener</listener-class>  
  8.   </listener>  
Print  servlet,璇ervlet鐢ㄤ簬灝嗘暟鎹敓鎴怑xcel鏂囦歡鎴杙df鏂囦歡騫惰繑鍥炵粰鐢ㄦ埛錛屽鏋滄?zhèn)ㄩ渶瑕佺敤鍒拌鍔熻兘錛屽垯闇瑕佸皢鍏禼opy鍒版?zhèn)骞鐩殑web.xml鏂囦歡涓?
  1. <servlet>  
  2.     <servlet-name>Print</servlet-name>  
  3.     <display-name>Print</display-name>  
  4.     <description>Default configuration created for servlet.</description>  
  5.     <servlet-class>com.tonbeller.jpivot.print.PrintServlet</servlet-class>  
  6.   </servlet>  
  7.  <servlet-mapping>  
  8.     <servlet-name>Print</servlet-name>  
  9.     <url-pattern>/Print</url-pattern>  
  10.   </servlet-mapping>  
MDXQueryServlet鐢ㄤ簬鎺ュ彈騫舵墽琛屼竴涓狹DX鏌ヨ錛岀劧鍚庡皢璇ユ煡璇互Html琛ㄦ牸鐨勫艦寮忚繑鍥炪傚叾涓殑鍙傛暟connectString鐢ㄤ簬鎸囧畾榪炴帴鍒版暟鎹簱鐨勫瓧絎︿覆錛屼緥濡備嬌鐢╦tds椹卞姩榪炴帴鍒皊ql server 2000鐨勫瓧絎︿覆濡備笅錛?

Provider=mondrian;Jdbc=jdbc:jtds:sqlserver://localhost/Tezz;user=sa;password=123456;Catalog=/WEB-INF/queries/tezz.xml;JdbcDrivers=net.sourceforge.jtds.jdbc.Driver; 

濡傛灉鎮(zhèn)ㄩ渶瑕佺敤鍒拌鍔熻兘錛屽垯闇瑕佸皢鍏禼opy鍒版?zhèn)骞鐩殑web.xml鏂囦歡涓?/p>

  1. <servlet>  
  2.     <servlet-name>MDXQueryServlet</servlet-name>  
  3.     <servlet-class>mondrian.web.servlet.MDXQueryServlet</servlet-class>  
  4.     <init-param>  
  5.       <param-name>connectString</param-name>  
  6.       <param-value>@mondrian.webapp.connectString@</param-value>  
  7.     </init-param>  
  8.   </servlet>  
  9.  <servlet-mapping>  
  10.     <servlet-name>MDXQueryServlet</servlet-name>  
  11.     <url-pattern>/mdxquery</url-pattern>  
  12.   </servlet-mapping>  
DisplayChart 鍜孏etChart 榪欎袱涓猄ervlet 鐢ㄤ簬鐢熸垚鍥捐〃鍜屽皢鍏舵樉紺虹粰鏈緇堢敤鎴鳳紝濡傛灉鎮(zhèn)ㄩ渶瑕佺敤鍒拌鍔熻兘錛屽垯闇瑕佸皢鍏禼opy鍒版?zhèn)骞鐩殑web.xml鏂囦歡涓?
  1. <!-- jfreechart provided servlet -->  
  2.   <servlet>  
  3.     <servlet-name>DisplayChart</servlet-name>  
  4.     <servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>  
  5.   </servlet>  
  6.   <!-- jfreechart provided servlet -->  
  7.   <servlet>  
  8.     <servlet-name>GetChart</servlet-name>  
  9.     <display-name>GetChart</display-name>  
  10.     <description>Default configuration created for servlet.</description>  
  11.     <servlet-class>com.tonbeller.jpivot.chart.GetChart</servlet-class>  
  12.   </servlet>  
  13. <servlet-mapping>  
  14.     <servlet-name>DisplayChart</servlet-name>  
  15.     <url-pattern>/DisplayChart</url-pattern>  
  16.   </servlet-mapping>  
  17. <servlet-mapping>  
  18.     <servlet-name>GetChart</servlet-name>  
  19.     <url-pattern>/GetChart</url-pattern>  
  20.   </servlet-mapping>  
瀹冧滑鐢ㄤ簬鍚戠敤鎴風(fēng)敓鎴愬拰鏄劇ず濡備笅鎵紺虹殑鍚勭鍥捐〃錛?

鏈鍚庢坊鍔犱互涓嬫爣絳懼簱鍒版垜浠殑web.xml欏圭洰涓嵆鍙?/p>

  1. <taglib>  
  2.    <taglib-uri>http://www.tonbeller.com/wcf</taglib-uri>  
  3.    <taglib-location>/WEB-INF/wcf/wcf-tags.tld</taglib-location>  
  4.  </taglib>  
  5.   
  6.  <taglib>  
  7.    <taglib-uri>http://www.tonbeller.com/jpivot</taglib-uri>  
  8.    <taglib-location>/WEB-INF/jpivot/jpivot-tags.tld</taglib-location>  
  9.  </taglib>  
鍒拌繖閲岋紝鎮(zhèn)ㄥ簲璇ュmondrian鍦╳eb.xml鐨勯厤緗湁涓瀹氱殑浜?jiǎn)瑙eQ屽茍鍙寜闇瑕佹坊鍔犵浉搴旂殑鍔熻兘銆?

鎺ヤ笅鏉ユ垜浠皢瑕佸垱寤烘湰渚嬪瓙鎵瑕佺敤鍒扮殑琛ㄦ牸鍙?qiáng)鏁版嵁銆?/p>

2.6 鍑嗗嫻嬭瘯鐢ㄨ〃

鏈緥浣跨敤鐨勮〃緇撴瀯濡備笅鎵紺猴細(xì)


Sale鏄簨瀹炶〃錛屽畠鏈変袱涓淮錛氬鎴?customer)緇村拰鐢變袱涓〃緇勬垚鐨勪駭鍝?Product)緇淬?/p>

琛ㄦ牸鐨勫垱寤哄緢綆鍗曪紝鎮(zhèn)ㄥ彧闇瑕佸皢涓嬮潰鐨剆ql璇彞瀵煎叆鏁版嵁搴撳嵆鍙?/p>

2.6.1 浣跨敤浠ヤ笅sql璇彞鍒涘緩琛?/h3>
  1. /**閿鍞〃*/  
  2. create table Sale (  
  3.     saleId int not null,  
  4.     proId int null,  
  5.     cusId int null,   
  6.     unitPrice float null,    --鍗曚環(huán)  
  7.     number int null,     --鏁伴噺  
  8.     constraint PK_SALE primary key (saleId)  
  9. )  
  10.     /**鐢ㄦ埛琛?/  
  11. create table Customer (  
  12.     cusId int not null,  
  13.     gender char(1) null,    --鎬у埆  
  14.     constraint PK_CUSTOMER primary key (cusId)  
  15. )  
  16. /**浜у搧琛?/  
  17. create table Product (  
  18.     proId int not null,  
  19.     proTypeId int null,  
  20.     proName varchar(32) null,  
  21.     constraint PK_PRODUCT primary key (proId)  
  22. )  
  23. /**浜у搧綾誨埆琛?/  
  24. create table ProductType (  
  25.     proTypeId int not null,  
  26.     proTypeName varchar(32) null,  
  27.     constraint PK_PRODUCTTYPE primary key (proTypeId)  
  28. )  

2.6.2 浣跨敤浠ヤ笅sql璇彞瀵煎叆鏁版嵁

  1. insert into Customer(cusId,gender) values(1,'F')  
  2. insert into Customer(cusId,gender) values(2,'M')  
  3. insert into Customer(cusId,gender) values(3,'M')  
  4. insert into Customer(cusId,gender) values(4,'F')  
  5. insert into producttype(proTypeId,proTypeName) values(1,'鐢?shù)鍣?)  
  6. insert into producttype(proTypeId,proTypeName) values(2,'鏁扮爜')  
  7. insert into producttype(proTypeId,proTypeName) values(3,'瀹跺叿')  
  8. insert into product(proId,proTypeId,proName) values(1,1,'媧楄。鏈?)  
  9. insert into product(proId,proTypeId,proName) values(2,1,'鐢?shù)瑙嗘?)  
  10. insert into product(proId,proTypeId,proName) values(3,2,'mp3')  
  11. insert into product(proId,proTypeId,proName) values(4,2,'mp4')  
  12. insert into product(proId,proTypeId,proName) values(5,2,'鏁扮爜鐩告満')  
  13. insert into product(proId,proTypeId,proName) values(6,3,'妞呭瓙')  
  14. insert into product(proId,proTypeId,proName) values(7,3,'妗屽瓙')  
  15. insert into sale(saleId,proId,cusId,unitPrice,number) values(1,1,1,340.34,2)  
  16. insert into sale(saleId,proId,cusId,unitPrice,number) values(2,1,2,140.34,1)  
  17. insert into sale(saleId,proId,cusId,unitPrice,number) values(3,2,3,240.34,3)  
  18. insert into sale(saleId,proId,cusId,unitPrice,number) values(4,3,4,540.34,4)  
  19. insert into sale(saleId,proId,cusId,unitPrice,number) values(5,4,1,80.34,5)  
  20. insert into sale(saleId,proId,cusId,unitPrice,number) values(6,5,2,90.34,26)  
  21. insert into sale(saleId,proId,cusId,unitPrice,number) values(7,6,3,140.34,7)  
  22. insert into sale(saleId,proId,cusId,unitPrice,number) values(8,7,4,640.34,28)  
  23. insert into sale(saleId,proId,cusId,unitPrice,number) values(9,6,1,140.34,29)  
  24. insert into sale(saleId,proId,cusId,unitPrice,number) values(10,7,2,740.34,29)  
  25. insert into sale(saleId,proId,cusId,unitPrice,number) values(11,5,3,30.34,28)  
  26. insert into sale(saleId,proId,cusId,unitPrice,number) values(12,4,4,1240.34,72)  
  27. insert into sale(saleId,proId,cusId,unitPrice,number) values(13,3,1,314.34,27)  
  28. insert into sale(saleId,proId,cusId,unitPrice,number) values(14,3,2,45.34,27)  

2.7 寤虹珛妯″紡(schema)鏂囦歡

涓涓ā寮忓畾涔変簡(jiǎn)涓涓緇存暟鎹簱. 瀹冨寘鍚竴涓昏緫妯″瀷(logical model)銆佷竴緇勬暟鎹珛鏂?consisting of cubes)銆佸眰嬈?hierarchies)銆佸拰鎴愬憳(members), 騫舵槧灝勫埌鐗╃悊妯″瀷(鍏崇郴鏁版嵁搴?涓娿?/p>

綆鍗曠殑璇達(dá)紝閰嶇疆涓涓ā寮忓氨鏄厤緗竴涓叧緋繪暟鎹粨鏋勫埌澶氱淮鏁版嵁緇撴瀯鐨勬槧灝勩?/p>

娉細(xì)鍏充簬mondrian鐨勬ā寮忓強(qiáng)妯″紡鐨勯厤緗紝鎮(zhèn)ㄥ彲浠ラ氳繃闃呰mondrian鐨勫熀鏈ā寮?pptx鏉ヤ簡(jiǎn)瑙c傝繖閲屾垜浠彧瀵瑰叾榪涜浜?jiǎn)绠鍗曚粙緇嶃?/p>

2.7.1 鍒涘緩妯″紡鏂囦歡錛?/h3>

妯″紡鏂囦歡鐨勫垱寤哄緢綆鍗曘傞鍏堝湪WEB-INF涓嬫柊寤轟竴涓猶ueries鐨勬枃浠跺す錛岀劧鍚庡湪璇ユ枃浠跺す涓嬪垱寤轟竴涓悕涓簍ezz.xml鐨勬枃浠躲傚啀鎸変笅闈㈢殑姝ラ灝唜ml鍏冪礌娣誨姞鍏ュ嵆鍙?/p>


2.7.2 閰嶇疆妯″紡鏂囦歡錛?/h3>

2.7.2.1 娣誨姞鏁版嵁绔嬫柟Sales:


2.7.2.2 娣誨姞鏁版嵁绔嬫柟Sales鐨勭淮:


娣誨姞浜у搧緇?鍥犱負(fù)浜у搧緇寸敱涓や釜琛ㄨ繛鎺ヨ屾垚錛屽洜姝ゆ瘮瀹㈡埛緇村鏉備簺)錛?br />


娣誨姞搴﹂噺(鍏辨湁涓変釜搴﹂噺:鏁伴噺銆佸鉤鍧囧崟浠峰拰鎬婚攢鍞)錛?br />


鏈鍚庣敓鎴愮殑tezz.xml鏂囦歡鍐呭濡備笅錛?br />

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <Schema name="tezz">  
  3. <Cube name="Sales">  
  4.     <!-- 浜嬪疄琛?fact table) -->  
  5.     <Table name="sale" />  
  6.     <!-- 瀹㈡埛緇?nbsp;-->  
  7.     <Dimension name="瀹㈡埛鎬у埆" foreignKey="cusId">  
  8.         <Hierarchy hasAll="true" allMemberName="鎵鏈夋у埆" primaryKey="cusId">  
  9.             <Table name="Customer"></Table>  
  10.             <Level name="gender" column="gender"></Level>  
  11.         </Hierarchy>  
  12.     </Dimension>  
  13.     <!-- 浜у搧綾誨埆緇?nbsp;-->  
  14.     <Dimension name="浜у搧綾誨埆" foreignKey="proId">  
  15.         <Hierarchy hasAll="true" allMemberName="鎵鏈変駭鍝? primaryKey="proId" primaryKeyTable="product">  
  16.             <join leftKey="proTypeId" rightKey="proTypeId">  
  17.                 <Table name="product" />  
  18.                 <Table name="producttype"></Table>  
  19.             </join>  
  20.             <Level name="proTypeId" column="proTypeId"  
  21.                 nameColumn="proTypeName" uniqueMembers="true" table="producttype" />  
  22.             <Level name="proId" column="proId" nameColumn="proName"  
  23.                 uniqueMembers="true" table="product" />  
  24.         </Hierarchy>  
  25.     </Dimension>  
  26.     <Measure name="鏁伴噺" column="number" aggregator="sum" datatype="Numeric" />  
  27.     <Measure name="鎬婚攢鍞" aggregator="sum" formatString="錕?,##0.00">  
  28.         <!-- unitPrice*number鎵寰楀肩殑鍒?nbsp;-->  
  29.         <MeasureExpression>  
  30.             <SQL dialect="generic">(unitPrice*number)</SQL>  
  31.         </MeasureExpression>  
  32.     </Measure>  
  33.     <CalculatedMember name="騫沖潎鍗曚環(huán)" dimension="Measures">  
  34.         <Formula>[Measures].[鎬婚攢鍞] / [Measures].[鏁伴噺]</Formula>  
  35.         <CalculatedMemberProperty name="FORMAT_STRING" value="錕?,##0.00" />  
  36.     </CalculatedMember>  
  37. </Cube>  
  38. </Schema>  

2.8 緙栧啓MDX鏌ヨ璇彞

鍦ㄦā寮忔枃浠跺畾涔夊畬鎴愪箣鍚庯紝鎴戜滑灝卞彲浠ユ牴鎹畠鏉ョ紪鍐欑浉搴擬DX鏌ヨ璇彞浜?jiǎn)銆?/p>

鏈緥鎵鐢ㄧ殑MDX璇彞濡備笅錛?br />

2.9 鍒涘緩鏌ヨ鏂囦歡

鐜板湪鎴戜滑灝嗗垱寤轟竴涓猨sp鏂囦歡錛岃jsp浣跨敤jpivot鐨刴ondrianQuery鏍囩鏉ュ畬鎴愭煡璇€?/p>

璇ユ枃浠舵渶鍚庡皢琚玹estpage.jsp浣跨敤銆?/p>

鍦?WEB-INF/queries鏂囦歡澶逛笅闈㈠垱寤轟竴鍚嶄負(fù)tezz鐨刯sp鏂囦歡銆傝jsp鍖呭惈濡備笅鍐呭錛?br />


2.10 甯冪講欏圭洰

鑷蟲(chóng)鎴戜滑宸茬粡鍏ㄩ儴閰嶇疆瀹屾垚錛屾枃浠剁粨鏋勫涓嬶細(xì)


甯冪講欏圭洰錛屽惎鍔═omcat錛屽湪嫻忚鍣ㄤ笂杈撳叆http://localhost:8080/Tezz/testpage.jsp?query=tezz鍗沖彲鐪嬪埌濡備笅緇撴灉:


娉?testpage.jsp?query=tezz錛岃繖閲岀殑tezz鍗沖垰鎴戜滑鍒涘緩鐨勭敤浜庢煡璇sp鏂囦歡鍚嶇О


3.  testpage.jsp鐨勬祦紼?/h1>

testpage.jsp鏂囦歡鐢ㄤ簬鍙戝嚭鏌ヨ鍙?qiáng)灏喚l撴灉杞崲鎴恏tml鏍煎紡銆傚畠浣跨敤涓緇刯sp鏍囩鏉ュ畬鎴愯繖浜涘鏉傜殑宸ヤ綔銆?/p>

鍦ㄦ湰鏁欑▼鐨勬渶鍚庝竴绔犻噷錛屾垜浠testpage.jsp鐨勬祦紼嬪強(qiáng)鐢ㄥ埌鐨勪富瑕佹爣絳捐繘琛岀畝鍗曚粙緇嶃?/p>

3.1 wcf:include鏍囩錛?/h2>


3.2 jp:table鏍囩錛?/h2>

<jp:table id="table01" query="#{query01}"/>

jp:table鏍規(guī)嵁query01涓繚瀛樼殑緇撴灉錛堥鍩熸暟鎹級(jí)鍑嗗鏄劇ずOLAP琛ㄦ牸鎵闇鐨勬暟鎹紙鏄劇ず鏁版嵁錛?br />

<wcf:render ref="table01" xslUri="/WEB-INF/jpivot/table/mdxtable.xsl"/>

鏍規(guī)嵁table01鐨勭粨鏋滐紝浣跨敤mdxtable.xsl涓殑閰嶇疆錛屾覆鏌撳嚭OLAP琛ㄦ牸銆?br />

3.3 鍏朵粬jp銆亀cf鏍囩

鍚屾牱錛屽叾浠杍p鏍囩錛屽<jp:chart id=“chart01“ ---/>絳夋爣絳懼噯澶囧緟娓叉煋鐨勬暟鎹紝鍐嶇敱鐩稿簲鐨?lt;wcf:render ref=“chart01” ---/>鏍囩灝嗗畠浠覆鏌撴垚html鏍煎紡銆?/p>

榪欐牱錛岀敤鎴峰皢鍦ㄦ祻瑙堝櫒涓婄湅鍒版渶緇堢殑緇撴灉銆?/p>

鑷蟲(chóng)錛屼竴涓畬鏁寸殑mondrian鏌ヨ緇撴潫銆?/p>




gdufo 2016-02-06 18:18 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 你懂的网址免费国产| 最近中文字幕完整免费视频ww| 免费一区二区无码视频在线播放| EEUSS影院WWW在线观看免费 | 亚洲精品国产福利片| 色偷偷亚洲男人天堂| 91麻豆国产免费观看| 精品无码一区二区三区亚洲桃色| 日韩欧美亚洲中文乱码| 99久久国产免费-99久久国产免费| 波多野结衣久久高清免费| 亚洲av色影在线| 国产成人久久精品亚洲小说| 精品国产污污免费网站 | 女人张开腿给人桶免费视频| 亚洲av无码一区二区三区不卡 | 亚洲六月丁香婷婷综合| 国产特黄特色的大片观看免费视频| 青青久在线视频免费观看| 国产成人精品久久亚洲| 亚洲熟妇AV一区二区三区宅男| 国产免费无码一区二区| 亚洲精品综合一二三区在线| 国产精品成人啪精品视频免费| 伊人久久大香线蕉亚洲五月天| 视频一区在线免费观看| 妞干网免费视频在线观看| 亚洲AV无码精品国产成人| 国产午夜亚洲精品国产成人小说| 亚洲日韩国产AV无码无码精品| 国产精品免费观看| 久久久久亚洲av无码尤物| 午夜国产精品免费观看| 亚洲视频免费观看| 91青青青国产在观免费影视| 在线亚洲午夜片AV大片| 最近2019中文字幕免费大全5| 亚洲精华国产精华精华液| 麻豆一区二区免费播放网站| 免费一级做a爰片久久毛片潮| 久久久无码精品亚洲日韩按摩|