ketlle中调用User Defined Java Class插件链接数据库并操作

    public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException  
    {  
        // First, get a row from the default input hop  
        //  
        Object[] r = getRow();  
      
        org.pentaho.di.core.database.DatabaseMeta dbmeta = null;  
          
        java.util.List list = getTrans().getRepository().readDatabases();//3.x中获取资源库的所有数据库连接信息用getDatabases(); 
          
        if(list != null && !list.isEmpty())  
        {  
            for(int i=0;i<list.size();i++)  
            {  
                dbmeta = (org.pentaho.di.core.database.DatabaseMeta)list.get(i); 
                    
                            //下面是目标库的数据库连接,大家可根据需要修改  
                if("local".equalsIgnoreCase(dbmeta.getName()))  
                {                 
                    break;  
                }  
            }  
        }  
      
        if(dbmeta!=null)  
        {  
            org.pentaho.di.core.database.Database db=new org.pentaho.di.core.database.Database(dbmeta);  
              
            try  
            {  
                db.connect(); 
         
          if(r!=null){
           String imageCode= get(Fields.In, "ImageCode").getString(r);
            //字段表名
           String fieldTableName = get(Fields.In, "fieldTableName").getString(r); 
           //转换结果值
           String result = get(Fields.In, "result").getString(r);
           // 字段名
           String fieldName = get(Fields.In, "fieldName").getString(r);
          //单位字段名
           String unitName = get(Fields.In, "unitName").getString(r);
           // 单位自断案值
           String unitValue = get(Fields.In, "unitValue").getString(r);
           //单位表名
           String unitTableName = get(Fields.In, "unitTableName").getString(r);

            logBasic("fieldSql: update " + fieldTableName +" set  "+ fieldName+" = '"+result+"' where ImageCode= '" +imageCode+"'"); 
            String fieldSql = "update " + fieldTableName +" set  "+ fieldName+" = '"+result+"' where ImageCode= '" +imageCode+"'";
            logBasic("unitSql: update " + unitTableName +" set  "+ unitName+" = '"+unitValue+"' where ImageCode= '" +imageCode+"'"); 
            String unitSql = "update " + unitTableName +" set  "+ unitName+" = '"+unitValue+"' where ImageCode= '" +imageCode+"'";     
            db.execStatement(fieldSql); 
            db.execStatement(unitSql); 

}

            }  
            catch(Exception e)  
            {             
                logError("创建表出现异常",e);  
                  
            }finally{  
                db.disconnect();  
            }  
        }  
        return false;  
    } 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值