软件版本 Mondrian 3.6.1
上一篇文章介绍了如何将Mondrian集成到我的自己的WebApp中并且以XMLA的形式向外提供服务,今天我们就接着讲一下如果将Mondrian集成到WebApp中并通过Java API来为我们自己的程序提供服务(这跟Java JDBC访问数据库非常相似)。
这里我们在上一篇建立的工程之上做,如果对Jar包依赖不清楚的同学可以参看一下我的上一篇博文:
http://alenzhai.iteye.com/blog/2153204
上一篇中我们并没有写代码就将Mondrian集成到了我们的系统中,今天就得写点Java代码了,讲之前的说明,这里只是为了演示所以只建了一个Main类并在main方法中执行,在实际的应用中,我们需要将其封装到一个类中使用(可以参考 JDBC的模式)。
首先在工程src目录下新建一个包mondrian.java.api 在包下新建类Main且类中有一个main方法如图:
在类中新增获取连接方法 (此方法相当于JDBC中的获取连接方法):
/** * 获取连接Olap的连接 * @param url 连接Olap的URL * @return * @throws ClassNotFoundException * @throws SQLException */ public static OlapConnection getConnection(String url) throws ClassNotFoundException, SQLException{ Class.forName("mondrian.olap4j.MondrianOlap4jDriver"); Connection connection = DriverManager.getConnection(url); return connection.unwrap(OlapConnection.class); }
增加查询方法(此方法相当于JDBC中根据SQL获取ResultSet的方法):
/** * 获取查询的结构结果集 * @param mdx mdx查询语句 * @param conn Olap连接 * @return * @throws OlapException */ public static CellSet getResultSet(String mdx,OlapConnection conn) throws OlapException{ OlapStatement statement = conn.createStatement(); CellSet cellSet = statement.executeOlapQuery(mdx); return cellSet; }
主方法中的内容:
public static void main(String[] args) throws ClassNotFoundException, SQLException { // TODO Auto-generated method stub //callschema(); //获取连接 OlapConnection conn= getConnection( //URL协议 "jdbc:mondrian:" //连接数据源的JDBC连接 + "Jdbc='jdbc:mysql://localhost:3306/alen?user=root&password=admin&useUnicode=true&characterEncoding=utf8';" //数据模型文件 + "Catalog='file://E:/work/workspace/mondrianweb/WebContent/WEB-INF/schema/demo.mondrian.xml';" //连接数据源用到的驱动 + "JdbcDrivers=com.mysql.jdbc.Driver;"); //查询语句 String mdx="SELECT {[Measures].[cnt]} ON 0," + "{[dep].[dep].members} on 1" + "FROM [prd]"; //获取查询结果 CellSet cs=getResultSet(mdx, conn); //处理返回数据 if(cs.getAxes().size()>1){ for (Position row : cs.getAxes().get(1)) { for (Position column : cs.getAxes().get(0)) { for (Member member : row.getMembers()) { System.out.println("rows:"+member.getUniqueName()); } for (Member member : column.getMembers()) { System.out.println("columns:"+member.getUniqueName()); } final Cell cell = cs.getCell(column, row); System.out.println("values:"+cell.getValue()); System.out.println(); } } }else{ for(Position column:cs.getAxes().get(0)) { for(Member member:column.getMembers()){ System.out.println("columns:"+member.getUniqueName()); } Cell cell=cs.getCell(column); System.out.print("values:"+cell.getValue()); System.out.println(); } } }
Ok 编码完成 运行一下试试吧
结果:
rows:[dep].[部门一]
columns:[Measures].[cnt]
values:16.0
rows:[dep].[部门二]
columns:[Measures].[cnt]
values:16.0
通过上面的代码也许你会同意我上一篇所说的Mondrian只是一个翻译器的说法了吧,ok今天就到这里,我们下次再见吧。
下期预告:Mondrian XMLA配置多个数据源
相关推荐
本文介绍其它几种支持Pentaho/mondrian的多维展示方案,供大家作项目时参考
本文档介绍 OLAP、MDX 基本概念和原理、Mondrian 的使用和一些前端工具的使用。其中 “基本概念”和“MDX”这两章基本都是通用的内容,并不仅限于 Mondrian。 本文档主要用做简略的指南,更深入、更详细的内容请参考...
kylin-mondrian-interaction, 关于Apache与 Pentaho Mondrian 交互的一些信息 Interaction InteractionKylin与 Mondrian 与Saiku的交互包括补丁和 jars 。预安装要求你应当能够运行 Kylin,构建和创建一个 Cube多维...
关于eclipse集成pentaho 报表的一个小demo
[Packt Publishing] Pentaho 数据集成 初学者指南 第2版 (英文版) [Packt Publishing] Pentaho Data Integration Beginner's Guide 2nd Edition (E-Book) ☆ 图书概要:☆ Get up and running with the Pentaho ...
NULL 博文链接:https://qq85609655.iteye.com/blog/2331671
[Packt Publishing] Pentaho 3.2 数据集成 初学者指南 第1版 (英文版) [Packt Publishing] Pentaho 3.2 Data Integration Beginner's Guide 1st Edition (E-Book) ☆ 图书概要:☆ As part of Packt's Beginner's...
pentaho-kettle的基础教程,在这里可以快速的了解到如何使用pentaho平台下的kettle开发工具。
数据的商业化——应该且必具体到行业运用,并支持决策。方法可以是简单数理统计,也可以是复杂的数据挖掘!
pentaho的官网教程,包括交互式报告,仪表盘等等;
pentaho-kettle_4.2.1基础教程.pdf
Pentaho笔记 3 2 使用MySQL作为Pentaho默认数据库 4 2.1 创建数据库 4 2.2 配置Pentaho 4 1配置Pentaho使用FoodMart数据 6 1.1注册数据源 6 1.2定义多维数据schema 7 1.3注册schema 7 1.4配置Pentaho使用filesystem-...
Pentaho数据集成 Pentaho数据集成(ETL)又名Kettle 项目结构 程序集:项目分发归档文件在此模块下生成 核心:核心实现 dbdialog:“数据库”对话框 ui:用户界面 引擎: PDI引擎 engine-ext: PDI引擎扩展 PDI核心...
mondrian pentaho analysis services 帮助文档
Pentaho Solutions Pentaho Solutions
learning-pentaho-ctoolslearning-pentaho-ctoolslearning-pentaho-ctoolslearning-pentaho-ctoolslearning-pentaho-ctoolslearning-pentaho-ctoolslearning-pentaho-ctools
赠送jar包:pentaho-aggdesigner-algorithm-5.1.5-jhyde.jar; 赠送原API文档:pentaho-aggdesigner-algorithm-5.1.5-jhyde-javadoc.jar; 赠送源代码:pentaho-aggdesigner-algorithm-5.1.5-jhyde-sources.jar; ...
自己做的 日文 pentaho-bi-suite-3.0.1-GA
自己做的 pentaho-bi-suite-3.0.1-GA 图文说明 日文