zoukankan      html  css  js  c++  java
  • Java调用执行kettle中的tran并且传参

    前提:本人属于初学者,kettle与java的集成正在学习,本文着重说的是java调用本地的ktr并且传参,而不是调用数据库类型的资源库中的ktr.

    part1:java部分

    project目录如下

    需要注意的是:

    1:注意所需要的包,大多部分的包在kettle目录下面就有。

    2:ktr设计中可能设计多种数据源,驱动包都要有,比如上面的jtds,ojdbc.

    3:根据提示也可以选择性的导入js-1.7R1(开发过程中报了一个not found js类的) 下面的两个activation,mail是报了mail的错误,所以导入。

    View Code
     1 package kettle;
     2 //需要导入的包
     3 import org.pentaho.di.core.KettleEnvironment;
     4 import org.pentaho.di.trans.Trans;
     5 import org.pentaho.di.trans.TransMeta;
     6 public class ExecuteLocalTran {
     7     /**
     8      * java调用本地的tran并且传递参数
     9      * 
    10      * 
    11      */
    12    public static void main(String arg[]) throws Exception 
    13     {
    14        String idname="5";//作为参数值
    15        String filename="./test.ktr";//ktr路径
    16        KettleEnvironment.init();//初始化kettle环境
    17        TransMeta transMeta = new TransMeta(filename);//new tran的源数据对象
    18        Trans trans = new Trans(transMeta);//创建tran对象
    19        trans.setVariable("namevalue",idname);//给对象传参
    20        trans.prepareExecution(null);//异常处理
    21        trans.startThreads();//开始执行
    22        trans.waitUntilFinished();//等待执行完毕
    23        if(trans.getErrors()!=0)
    24        {
    25            System.out.println("Error encountered!"); 
    26        }
    27     }
    28 
    29 }

    part2:ktr部分

    需要注意的地方:1:参数引用格式${java程序中指定的参数名} PS: trans.setVariable("namevalue",idname);//给对象传参

                           2:一定要勾选”替换sql语句中的变量“

    英文名:kingwang & Email :kingstudy@vip.qq.com
  • 相关阅读:
    快速排序算法
    学习了几天的jQuery Mobile的一点感受
    jQuery Mobile 图标无法显示
    html5基础知识
    百度地图与谷歌地图 (常识、区别,更倾向于使用百度地图,纠错信息比谷歌多)
    (转)百度Map API
    历年软件设计师下午考试试题汇总统计
    HTML5的本地存储
    EnterpriseArchitectect 软件的勾选的几个选项对应的中文意思
    访问权限控制表
  • 原文地址:https://www.cnblogs.com/wxjnew/p/3075997.html
Copyright © 2011-2022 走看看