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語句中的變量“

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM