本文主要是介绍java如何调用kettle设置变量和参数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
《java如何调用kettle设置变量和参数》文章简要介绍了如何在Java中调用Kettle,并重点讨论了变量和参数的区别,以及在Java代码中如何正确设置和使用这些变量,避免覆盖Kettle中已设置...
java调用kettle设置变量和参数
java调用kettle,变量和参数的设置方式
java代码中变量会覆盖kettle里面设置的变量
需要注意:
变量和参数 他俩是不一样的
public class JobMail { public static void main(String[] args) throws KettleException { KettleDatabaseRepository repository = KettleUtils.kettleDbRepository; String job_path = "/201811_JOB"; String job_name = "A_邮件job_para"; execJob(repository, job_path, job_name); } /** * 执行 JOB * * @param repository * kettle数据库资源库 * @param job_path * JOB 目录 * @param job_name * JOB 名称 * @throws KettleException */ private static void execJob(KettleDatabaseRepository repository, String job_path, String job_name) throws KettleException { RepositoryDirectoryInterface dir = repository.findDirectory(job_path); JobMeta jobMeta = repository.loadJob(repository.getJobId(job_name, dir), null); Job job = new Job(repository, jobMeta); // 设置参数 jobMeta.setParameterValue("sql_file", "d://12"); jobMeta.setParameterValue("sql_file_para", "java中参数"); job.setLogLevel(LogLevel.DEBUG); // 设置变量 java代码中变量会覆盖kettle里面设置的变量 job.setVariable("sql_file", "d://13"); // 启动执行指定的job job.start(); job.waitUntilFinished();// 等待job执行完; job.setFinished(true); System.out.println(job.getResult()); } }
public class KettleUtils { private static Logger logger = Logger.getLogger(KettleUtils.class); private KettleUtils() throws Exception { throw new Exception("工具类不允许创建"); } /** * kettle 资源库 */ public static KettleDatabaseRepository kettleDbRepository; static { if (kettleDbRepository == null) { kettleDbRepository = 编程getKettleDatabaseRepository(); logger.info("实例化kettle资源库"); } } /** * 设置kettle资源库连接信息 * * @return */ public static DatabaseMeta setDatabaseMeta() { return new DatabaseMeta(PropUtils.gephptConfigValByKey("name"), PropUtils.getConfigValByKey("type"), PropUtils.getConfigValByKey("Access"), PropUtils.getConfigValByKey("host"), PropUtils.getConfigValByKey("db"), PropUtils.getConfigValByKey("port"), PropUtils.getConfigValByKey("user"), PropUtils.getConfigValByKey("pass")); } /** * kettle 资源库 获取 * * @return */ private static KettleDatabaseRepository getKettleDatabaseRepository() { try { www.chinasem.cnKettleEnvironment.init(); // 创建DB资源库 KettleDatabaseRepository repository = nhttp://www.chinasem.cnew KettleDatabaseRepository(); DatabaseMeta databaseMeta = KettleUtils.setDatabaseMeta(); // 选择资源库 此处参我与本地不一致还是正确执行 KettleDatabaseRepositoryMeta kettleDatabaseRepositoryMeta = new KettleDatabaseRepoChina编程sitoryMeta("Kettle", "Kettle", "Transformation description", databaseMeta); repository.init(kettleDatabaseRepositoryMeta); // 连接资源库 DatabaseMeta中已经设置了,不明白此处为何还要再次设置 repository.connect("admin", "admin"); return repository; } catch (KettleException e) { e.printStackTrace(); logger.error("kettle资源库连接失败"); } return null; } }
总结
这篇关于java如何调用kettle设置变量和参数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!