之前只做了⼀个java调⽤单⼀ktr的例⼦,在⽤web程序控制ETL数据抽取过程的时候,难免会遇到要执⾏⼀个复选框列表的ktr,那么前段传过来的就不仅仅是⼀个ktr;那就是⼀个未知数⽬的ktr列表了,思想就是封装:遍历:赋值:执⾏;
1 package kettle; 2
3 //需要导⼊的包 4
5 import java.util.ArrayList;
6 import org.pentaho.di.core.KettleEnvironment; 7 import org.pentaho.di.trans.TransMeta; 8 import org.pentaho.di.trans.Trans; 9 public class ExecuteBatchLocalTran {10 /**
11 * java调⽤本地的tran并且传递参数(包括给SQL传参)12 */13
14 public static void main(String arg[]) throws Exception 15 {
16 /*前台页⾯传递的参数*/17 String idname=\"7\";//参数值
18 String filename1=\"./test1.ktr\";//ktr路径19 String filename2=\"./test2.ktr\";//ktr路径20 KettleEnvironment.init();//初始化kettle环境21 /*定义⽂件路径,模型元数据,模型三个容器*/22 ArrayList 23 ArrayList 28 //System.out.print(\"=======================1:\"+list1.get(0));29 //System.out.print(\"=======================2:\"+list1.get(1));30 /*遍历⽂件对象,创建转换元数据对象*/31 for(int i=0;i 36 /*遍历转换元数据对象,创建转换对象*/37 for(int j=0;j 42 /*遍历转换对象,执⾏列表转换*/43 for(int h=0;h 46 trans.setVariable(\"idname\",idname);//传参给对象47 trans.prepareExecution(null);//异常处理48 trans.startThreads();//开始执⾏ 49 trans.waitUntilFinished();//等待执⾏完毕50 51 if(trans.getErrors()!=0)52 { 53 System.err.println(\"Error encountered!\"); }55 else56 { 57 System.out.println(\"Success\");58 }59 60 }61 62 63 65 66 67 }68 69 } 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- efsc.cn 版权所有 赣ICP备2024042792号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务