Java调用kettle实现ETL功能:使用mysql8.0.x版本的驱动

背景

最近项目上需要java调用kettle实现ETL逻辑,所以找度娘看了看kettle相关的知识,刚开始写了个demo项目,见参考文档。在demo上能正常调用ktr文件,所以就转移到了项目中,结果发现项目中使用的是8.0.13的mysql驱动包,而kettle默认使用5.x版本的,网上的都是kettle如何配置使用8.0版本的mysql驱动,没有java调用如何配置的,所以这里写下。

实现

在Kettle设置数据库连接时,不选择MySQL,而选择Generic database的连接类型,如下:
在这里插入图片描述

该连接类型为自定义数据库URL,一看便知,此时和Java定义数据连接时几乎一致,所以填写自定义连接URL,自定义驱动名称即可,这里需要注意的是,8.0+版本的MySQL在连接时需要指定时区,这是上述两个版本的连接url不一致的原因,而class类文件的路径也略有不同,稍作注意即可。

使用自定义连接,终于在使用8.0+jar包的同时,正确连接到了数据库。

效果

  1. 使用这种方式能看的ktr文件里的数据库链接方式发生了改变
    在这里插入图片描述

  2. 此时通过java调用ktr就没有问题了
    在这里插入图片描述

附录

  1. kettle需要的jar如下:
<dependencies>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-vfs2</artifactId>
            <version>2.1</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId&g
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值