Java调用执行kettle中的tran并且传参

浏览: 2597

前提:本人属于初学者,kettle与java的集成正在学习,本文着重说的是java调用本地的ktr并且传参,而不是调用数据库类型的资源库中的ktr.

part1:java部分

project目录如下

需要注意的是:

1:注意所需要的包,大多部分的包在kettle目录下面就有。

2:ktr设计中可能设计多种数据源,驱动包都要有,比如上面的jtds,ojdbc.

3:根据提示也可以选择性的导入js-1.7R1(开发过程中报了一个not found js类的) 下面的两个activation,mail是报了mail的错误,所以导入。

复制代码

 1 package kettle;
2 //需要导入的包
3 import org.pentaho.di.core.KettleEnvironment;
4 import org.pentaho.di.trans.Trans;
5 import org.pentaho.di.trans.TransMeta;
6 public class ExecuteLocalTran {
7 /**
8 * java调用本地的tran并且传递参数
9 *
10 *
11 */
12 public static void main(String arg[]) throws Exception
13 {
14 String idname="5";//作为参数值
15 String filename="./test.ktr";//ktr路径
16 KettleEnvironment.init();//初始化kettle环境
17 TransMeta transMeta = new TransMeta(filename);//new tran的源数据对象
18 Trans trans = new Trans(transMeta);//创建tran对象
19 trans.setVariable("namevalue",idname);//给对象传参
20 trans.prepareExecution(null);//异常处理
21 trans.startThreads();//开始执行
22 trans.waitUntilFinished();//等待执行完毕
23 if(trans.getErrors()!=0)
24 {
25 System.out.println("Error encountered!");
26 }
27 }
28
29 }

复制代码

 

 

part2:ktr部分

需要注意的地方:1:参数引用格式${java程序中指定的参数名} PS: trans.setVariable("namevalue",idname);//给对象传参

                       2:一定要勾选”替换sql语句中的变量“

推荐 0
本文由 kingwang 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册