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

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

part1:java部分

project目录如下

需要注意的是:

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

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

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

View Code
 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语句中的变量“

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值