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

思路:在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包截图:


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值