Java向kettle8.0传递参数的方式总结
1.传递参数到转换中
1.1. 通过设置Trans的variable的key、value值

1.2. 源码中,直接将我们的key、value存放到了全局的properties中

1.3. 在转化中可直接通过EL表达式获取参数:${yourkey}


1.4. 通过设置转换中的parameterValue的key、value值

1.5. params是从我们定义的命名参数中解析的map

1.6. 命名参数的key必须和我们传入的key值向同才能将value值存放至params中,在kettle中同样通过EL表达式获取数据${yourkey}

2.传递参数到作业中
2.1. 通过设置全局的properties将我们的参数传递给kettle,如果作业中包含了转换,需要保证key值不能冲突

2.2. 通过设置JobMeta的parameterValue可将参数传递给kettle,创建JobMeta时kettle会解析对应得xml格式的.kjb文件,并初始化命名参数的map,创建Job对象kettle并不会像创建Trans那样将TransMeta中的命名参数复制给Trans,所以此时的Job中的命名参数size为0,如果通过job.setParameterValue()函数并不能将我们的参数传递给kettle。

2.3. kettle源码中,初始value值为空字符串,需要在job中设定命名参数的变量名作为key值才能将自己的参数对应传递给kettle,接下来在对应需要使用的地方用EL表达式即可获取${yourkey}

总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Java中LinkedHashSet、LinkedHashMap源码详解
这篇文章主要介绍了Java中LinkedHashSet、LinkedHashMap源码详解,LinkedHashMap是一个以双向链表的方式将Entry节点链接起来的HashMap子类,它在HashMap的基础上实现了更多的功能,具有顺序存储和遍历的特性,需要的朋友可以参考下2023-09-09
MyBatis Generator配置生成接口和XML映射文件的实现
本文介绍了配置MBG以生成Mapper接口和XML映射文件,过合理使用MBG和自定义生成策略,可以有效解决生成的Example类可能带来的问题,使代码更加简洁和易于维护2025-02-02
idea2023创建JavaWeb教程之右键没有Servlet的问题解决
最近在写一个javaweb项目,但是在IDEA中创建好项目后,在搭建结构的时候创建servlet文件去没有选项,所以这里给大家总结下,这篇文章主要给大家介绍了关于idea2023创建JavaWeb教程之右键没有Servlet问题的解决方法,需要的朋友可以参考下2023-10-10


最新评论