zoukankan      html  css  js  c++  java
  • 运用Java调用Kettle Job和Trans(带参数)

    1.首先创建一个kettle trans

    image

    2.对表输入进行编辑

    image

    ${dateNow}为要传入的参数。

    3.代码编写

    首先需要把包导入

    image

    import org.pentaho.di.core.KettleEnvironment;
    import org.pentaho.di.core.exception.KettleException;
    import org.pentaho.di.job.Job;
    import org.pentaho.di.job.JobMeta;
    import org.pentaho.di.trans.Trans;
    import org.pentaho.di.trans.TransMeta;
    
    
    public class KettleTest {
    
        /**包
         * @param args
         * @throws KettleException 
         */
        public static void runJob(String jobFile) throws KettleException{
            KettleEnvironment.init();
            JobMeta jm = new JobMeta(jobFile,null);
            Job job = new Job(null,jm);
            job.setVariable("dateNow", "2016-01-05");
            job.start();
            job.waitUntilFinished();
        }
        
        public static void runTrans(String transFile) throws KettleException{
            KettleEnvironment.init();
            TransMeta tm = new TransMeta(transFile);
            Trans trans = new Trans(tm);
            trans.setVariable("dateNow", "2016-01-03");
            trans.execute(null);
            trans.waitUntilFinished();
        }
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            String fileName = "F:\zcr\工作空间\kettleWorkSpace\kettleTrans.ktr";
            try {
                runTrans(fileName);
            } catch (KettleException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    
        }
    
    }

    trans 通过 Trans.setVariable(String,String)传递参数。

    第一个参数就是ktr中的变量,比如上面的${dateNow}。我们可以通过Trans.setVariable(dateNow,”2016-01-05”)这个个函数把2016-01-05这个字符串赋给dateNow

    Job通过Job.setVariable(String,String)传递参数,用法和trans用法一致。

  • 相关阅读:
    问题堆栈区39+40
    ListView优化分页优化
    AsyncTask理解- Day36or37
    Activity是如何挂载Pargment的Day35
    BroadcastReceiver和Intetnt的理解 Day34
    深入理解自定义ListView
    手势识别=读取手机联系人=ContentResolver-Day3
    Android本地JUnit Text
    Java——(一)一切都是对象
    SciTE: 中文字符支持问题
  • 原文地址:https://www.cnblogs.com/zcr3108346262/p/6530404.html
Copyright © 2011-2022 走看看