kettle 使用java脚本连接获取数据库中的值

本文介绍如何在Kettle中使用Java脚本连接数据库并处理查询结果,包括设置自定义常数、引入必要的jar包及具体Java代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

思路:在kettle中通过设置自定义常数来获取java脚本的值,在kettle的libswt\win64目录下放入用到的含有java.sql中的类的jar包rt.jar,  在 java脚本中像正常java一样写代码连接数据库。可惜这样查询到的结果会将之前的结果给覆盖,需要再做处理。


整的流程:

自定义常量数据:

java代码:import java.sql.*;


public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException
{
Object[] r = getRow();
if (r == null) {
setOutputDone();
return false;
}


    if (first)
    {
        first = false;
    }


    String urlString = get(Fields.In, "urlString").getString(r);
    String driverName = get(Fields.In, "driverName").getString(r);
    String usernameString = get(Fields.In, "usernameString").getString(r);
    String passwString = get(Fields.In, "passwString").getString(r);
    PreparedStatement pst = null;
    ResultSet rs = null;
    try {
Class.forName(driverName);
Connection dbconConnection  = DriverManager.getConnection(urlString,usernameString,passwString);

String sqlString = "select * from tes";

pst = dbconConnection.prepareStatement(sqlString);

rs = pst.executeQuery();
while (rs.next()) {
String s = rs.getString(1);
String s2 = rs.getString(2);
get(Fields.In, "id").setValue(r, s);
                get(Fields.In, "nm").setValue(r, s2);

}

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}




    putRow(data.outputRowMeta, r);


return true;
}

java代码部分截图:

写日志:


kettle里jar包截图:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值