Java 代码

功能
直接写java代码,并执行java代码。
双击main 生成代码模版。

- 测试类 用于检查所写是否有代码语法等错误。
- 可以使用import 导入类
public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException {if (first) {first = false;/* TODO: Your code here. (Using info fields)FieldHelper infoField = get(Fields.Info, "info_field_name");RowSet infoStream = findInfoRowSet("info_stream_tag");Object[] infoRow = null;int infoRowCount = 0;// Read all rows from info step before calling getRow() method, which returns first row from any// input rowset. As rowMeta for info and input steps varies getRow() can lead to errors.while((infoRow = getRowFrom(infoStream)) != null){// do something with info datainfoRowCount++;}*/}//它等待前一步骤提供一行数据,会阻塞,返回一个对象数组表示输入行Object[] r = getRow();if (r == null) {//输入行为null,说明已经没有输入行数据需要处理 任务结束出口setOutputDone();return false;}// It is always safest to call createOutputRow() to ensure that your output row's Object[] is large// enough to handle any new fields you are creating in this step.r = createOutputRow(r, data.outputRowMeta.size());//写入代码逻辑/* TODO: Your code here. (See Sample)// Get the value from an input field 获取输入字段String foobar = get(Fields.In, "a_fieldname").getString(r);foobar += "bar";// Set a value in a new output field 设置输出字段get(Fields.Out, "output_fieldname").setValue(r, foobar);*/String firstname = get(Fields.In, "firstname").getString(r);String lastname = get(Fields.In, "lastname").getString(r);String name = firstname + lastname;get(Fields.Out, "newname").setValue(r, name);// Send the row on to the next step.putRow(data.outputRowMeta, r);return true;}`
理解:把java组件看着新建的一个类,类名是XXXXX_Processor。 注意:
1. 若想要使用自己的写代码,可以在最前面使用 package import导入类或者包。需要将自己代码打包成jar包,放入kettle安装目录下lib。然后重启spoon。2. 获取变量get(Fields.In, "idCard").getString(r);根据变量类型的不同,getString需要变换。
JavaScript代码
功能:
写javascript代码,并运行java代码。

* input fields 双击输入字段可直接将变量名复制在代码区域。* 点击获取变量,自动把代码区域定义变量名复制到字段输出区域。* 测试脚本,可以自定义数据,测试代码逻辑,语法等问题。
执行SQL脚本
功能:
在连接的数据库,运行Sql语句。可以允许以以下两种方式来使用:

* 在转换的开始阶段,执行一次SQL脚本。因为运行级别比较高。* 对传入该步骤的每一行数据执行一次SQL脚本。如:删除,更新,新增操作。* 执行每一行 依赖前面的表输入,将表输入中的每一行解析成SQL脚本进行执行,表输入中有几条数据,解析成几个SQL脚本执行* 变量替换 替换执行语句中的参数。有2种情况, 通过参数字段替换,使用站位符 xxx = '?',多个时,注意字段顺序;另外是设置变量替换,方式:${xxxx}* Sql语句可以同时写多条语句, 从上往下执行。执行多条Sql语句时,需设置转换事务,当报错时,不提交事务,保证数据一致性。双击转换空白地方,弹出转换属性,选择杂项,勾选使用唯一连接。整个转换使用唯一链接,某些组件有设置处理多少条提交一次,需该为0,不提交。

