网站转化微信小程序,南宁网站建设方案详细方案,免费推广方法,大学《网站开发与应用》试题java调用kettle批量执行 之前只做了一个java调用单一ktr的例子#xff0c;在用web程序控制ETL数据抽取过程的时候#xff0c;难免会遇到要执行一个复选框列表的ktr#xff0c;那么前段传过来的就不仅仅是一个ktr#xff1b;那就是一个未知数目的ktr列表了#xff0c;思想就… java调用kettle批量执行 之前只做了一个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 idname7;//参数值
18 String filename1./test1.ktr;//ktr路径
19 String filename2./test2.ktr;//ktr路径
20 KettleEnvironment.init();//初始化kettle环境
21 /*定义文件路径模型元数据模型三个容器*/
22 ArrayListString list1new ArrayListString();
23 ArrayListTransMeta list2new ArrayListTransMeta();
24 ArrayListTrans list3new ArrayListTrans();
25 /*添加文件对象*/
26 list1.add(filename1);
27 list1.add(filename2);
28 //System.out.print(1list1.get(0));
29 //System.out.print(2list1.get(1));
30 /*遍历文件对象创建转换元数据对象*/
31 for(int i0;ilist1.size();i)
32 {
33 TransMeta transMeta new TransMeta(list1.get(i));//new tran的源数据对象
34 list2.add(transMeta);
35 }
36 /*遍历转换元数据对象创建转换对象*/
37 for(int j0;jlist2.size();j)
38 {
39 Trans trans new Trans(list2.get(j));//创建tran对象
40 list3.add(trans);
41 }
42 /*遍历转换对象执行列表转换*/
43 for(int h0;hlist3.size();h)
44 {
45 Trans trans list3.get(h);//创建tran对象
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!);
54 }
55 else
56 {
57 System.out.println(Success);
58 }
59
60 }
61
62
63
64
65
66
67 }
68
69 } posted on 2013-05-30 14:22 kingstudy 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/wxjnew/archive/2013/05/30/3108104.html