1.首先创建一个kettle trans
2.对表输入进行编辑
${dateNow}为要传入的参数。
3.代码编写
首先需要把包导入
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用法一致。