如何从java将数据库连接传递到Kettle作业

如何从java将数据库连接传递到Kettle作业,java,pentaho,Java,Pentaho,我有一个Kettle任务,它将从数据库X获取数据,并将数据复制到另一个数据库Y 我使用了一些水壶从java运行这个作业,它工作得很好 现在,我的要求是,如何从java动态地将数据库名称传递给作业 例如: String filename = "myJob.kjb"; KettleEnvironment.init(); JobMeta jobMeta = new JobMeta(filename, null); jobMeta.setParameterValue("TEST_DB", "MyData

我有一个Kettle任务,它将从数据库X获取数据,并将数据复制到另一个数据库Y

我使用了一些水壶从java运行这个作业,它工作得很好

现在,我的要求是,如何从java动态地将数据库名称传递给作业

例如:

String filename = "myJob.kjb";
KettleEnvironment.init();
JobMeta jobMeta = new JobMeta(filename, null);
jobMeta.setParameterValue("TEST_DB", "MyDatabase");
jobMeta.setInternalKettleVariables();
Job job = new Job(null, jobMeta);
job.start();
job.waitUntilFinished();

您是否尝试过jobMeta.activateParameters()?

似乎
jobMeta.activateParameters()
不起作用,动态传递连接需要什么,但是作业步骤没有选择参数化名称,如下所示:

<connection>${kettle.db.connection.name}</connection>
${kettle.db.connection.name}

您不需要动态传递db名称,使用通用连接将所有db连接属性动态传递给kettle作业