简单的ava代码插件示例

因为有时候需要定制化对数据处理,部分插件不好使用使用,例如生成雪花算法的id。

所以才有这篇文章,便于才使用ckettle的小伙伴们学习,如何使用java代码这个插件。

先创建对应的项目(我这里是maven项目),然后创建对应的类。方便我们使用,然后将写完的项目打包成jar。放到CKettle的lib目录下。

简单的ava代码插件示例

简单的ava代码插件示例
简单的ava代码插件示例

然后打开CKettle,新建转换。拖出对应要使用的插件,我这里就使用自定义常量,java代码,空操作,三个插件,用于演示java代码的使用。

简单的ava代码插件示例

接下来就是java代码插件的编写工作,首先先点击常用类里面的main方法,而这方法不是我们常用的main方法。而是一个processRow方法。写过插件的小伙伴应该对这个方法挺熟悉的。这是一个处理行数据的方法,也是一个插件的主要方法。

在这里我讲解一下这个方法,processRow是对 行 数据的处理!如何有三条 数据

name age

张三 23

李四 24

王五 25

这里我们可以看到这里是三行数据。所以第一行数据 张三 23 是首先进入这个方法。然后接着就是 李四 24,再就是 王五 25。

这个方法作业就是对每行数据进行处理!每行数据都会执行该方法。

接下来就是参数解释,

first 是一个内置的属性。表示是否是第一行数据!,所以进入后会把置为flase,因为以后的数据都不是第一条数据,在这个判断用于初始化;

smi 和sdi我就不详细解释了,就是要开发插件时候,要写的类,嗯,开发过插件的都应该知道

给一个链接,里面有processRow常见方法

https://blog.csdn.net/csdn0214/article/details/100239823

对了注意一件事,在方法内部(除了first判断内部)生成对象,每一行数据都会生成一个对象!!!

所以我这里是个错误的示范,正确的是first方法内部,或在方法外,如图所示

然后 get(Fields.Out, “SnowFlakeId”).setValue(r, id);

添加列,比如上面三条数据,可以对应加id

简单的ava代码插件示例
简单的ava代码插件示例

这样简单的java代码插件的示例就写完了,感谢你的阅读,如果觉得写的不错,请帮忙点赞,分享。评论。谢谢。