jar包
链接: pan.baidu.com/s/1nXsgR-e3…
提取码: fr3r
try {
init();
KettleEnvironment.init();
InputStream ktrFile = new ByteArrayInputStream(this.kettleInfoDO.getKettleData());
TransMeta transMeta = new TransMeta(ktrFile, null, true, null, null);
List<DatabaseMeta> databases = transMeta.getDatabases();
for (DatabaseMeta dm : databases) {
String connectionName = dm.getName().trim();
if ("InputConnection".equals(connectionName)) {
dm.setHostname(this.dataSourceBean.getSourceHostName()); // 连接地址
dm.setDBName(this.dataSourceBean.getSourceDbName()); // 数据库名称
dm.setDBPort(this.dataSourceBean.getSourceDbPort()); // 端口
dm.setUsername(this.dataSourceBean.getSourceUserName()); // 用户
dm.setPassword(this.dataSourceBean.getSourcePassWord()); // 密码
} else if ("OutputConnection".equals(connectionName)) {
dm.setHostname(this.dataSourceBean.getTargetHostName()); // 连接地址
dm.setDBName(this.dataSourceBean.getTargetDbName()); // 数据库名称
dm.setDBPort(this.dataSourceBean.getTargetDbPort()); // 端口
dm.setUsername(this.dataSourceBean.getTargetUserName()); // 用户
dm.setPassword(this.dataSourceBean.getTargetPassWord()); // 密码
}
}
Trans trans = new Trans(transMeta);
trans.prepareExecution(null);
//开始转换
trans.startThreads();
//阻塞直到转换完成
trans.waitUntilFinished();
} catch (KettleException e) {
e.printStackTrace();
}