java调用kettle7传递参数并执行作业


java代码如下所示:
public static void runJob(String fileName, String beginTime, String endTime) throws KettleException {// 初始化 KettleEnvironment.init(); // 任务元对象 fileName为作业的绝对路径C:\Users\Administrator\Desktop\参数传递测试作业.kjb JobMeta jm = new JobMeta(fileName, null);
     // 任务 Job job = new Job(null, jm); // 传参 job.setVariable("beginTime", beginTime); job.setVariable("endTime", endTime); // 开始任务 job.start(); // 等待任务结束 job.waitUntilFinished(); }

作业与转换

作业中添加转换1和转换2

转换1中需添加 获取系统信息 步骤,获取需要的参数,表输入中需勾选替换SQL语句中的变量。内容如下图所示(转换2同转换1):

 

 

  '${beginTime}' 转换中加单引号的原因:java中若参数定义为 String beginTime = "2021-04-07 00:00:00"; 
传递到转换中${beginTime}的值就是2021-04-07 00:00:00   PS: 也可以直接这样定义String beginTime = "'2021-04-07 00:00:00'"; 则对应转换中的参数不需添加单引号   BETWEEN to_date(${beginTime},'yyyy-MM-dd hh24:mi:ss') and to_date(${endTime},'yyyy-MM-dd hh24:mi:ss')

 

测试时可以采用以下方法:


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM