當前位置:編程學習大全網 - 源碼下載 - kettle怎樣連接數據庫連接

kettle怎樣連接數據庫連接

java調用kettle數據庫類型資源庫中的ktr此問題在1個月前或許已經接觸,單是壹直木有怎麽用到,就被耽擱至今;問題的解決要來源於網絡,其實我還想說問題的解決的是要靠我們自己的思想,不過多的言情,我們接下來直接進入主題吧!環境:kettle-spoon4.2.0,oracle11g,myeclipse6.5,sqlserver2008前提:在kettle圖形界面spoon裏面已經做好了壹個ktr轉換模型,此時我的ktr信息如下圖:Step1:在myeclipse創建project,導入kettle集成所需要的包Step2:重點解析與code源碼//定義ktr名字privatestaticStringtransName="test1";//初始化kettle環境KettleEnvironment.init();//創建資源庫對象,此時的對象還是壹個空對象KettleDatabaseRepositoryrepository=newKettleDatabaseRepository();//創建資源庫數據庫對象,類似我們在spoon裏面創建資源庫DatabaseMetadataMeta=newDatabaseMeta("enfo_bi","Oracle","Native","ip","sid","port","username","password");//資源庫元對象,名稱參數,id參數,描述等可以隨便定義KettleDatabaseRepositoryMetakettleDatabaseMeta=newKettleDatabaseRepositoryMeta("enfo_bi","enfo_bi","kingdescription",dataMeta);//給資源庫賦值repository.init(kettleDatabaseMeta);//連接資源庫repository.connect("admin","admin");//根據變量查找到模型所在的目錄對象RepositoryDirectoryInterfacedirectory=repository.findDirectory("/enfo_worker/wxj");//創建ktr元對象TransMetatransformationMeta=((Repository)repository).loadTransformation(transName,directory,null,true,null);//創建ktrTranstrans=newTrans(transformationMeta);//執行ktrtrans.execute(null);//等待執行完畢trans.waitUntilFinished();上面的兩個步驟才可以確定是資源庫中的那個路徑下的ktr和我們用命令執行壹樣的-dir,-tran-job附上源碼:packagekettle;importorg.pentaho.di.core.KettleEnvironment;importorg.pentaho.di.core.database.DatabaseMeta;importorg.pentaho.di.core.exception.KettleException;importorg.pentaho.di.repository.Repository;importorg.pentaho.di.repository.RepositoryDirectoryInterface;importorg.pentaho.di.repository.kdr.KettleDatabaseRepository;importorg.pentaho.di.repository.kdr.KettleDatabaseRepositoryMeta;importorg.pentaho.di.trans.Trans;importorg.pentaho.di.trans.TransMeta;/***Title:java調用kettle4.2數據庫型資料庫中的轉換*Description:*Copyright:Copyright()2012*/publicclassExecuteDataBaseRepTran{privatestaticStringtransName="test1";publicstaticvoidmain(String[]args){try{//初始化kettle環境KettleEnvironment.init();//創建資源庫對象,此時的對象還是壹個空對象KettleDatabaseRepositoryrepository=newKettleDatabaseRepository();//創建資源庫數據庫對象,類似我們在spoon裏面創建資源庫DatabaseMetadataMeta=newDatabaseMeta("enfo_bi","Oracle","Native","ip","sid","port","username","password");//資源庫元對象,名稱參數,id參數,描述等可以隨便定義KettleDatabaseRepositoryMetakettleDatabaseMeta=newKettleDatabaseRepositoryMeta("enfo_bi","enfo_bi","kingdescription",dataMeta);//給資源庫賦值repository.init(kettleDatabaseMeta);//連接資源庫repository.connect("admin","admin");//根據變量查找到模型所在的目錄對象,此步驟很重要。RepositoryDirectoryInterfacedirectory=repository.findDirectory("/enfo_worker/wxj");//創建ktr元對象TransMetatransformationMeta=((Repository)repository).loadTransformation(transName,directory,null,true,null);//創建ktrTranstrans=newTrans(transformationMeta);//執行ktrtrans.execute(null);//等待執行完畢trans.waitUntilFinished();if(trans.getErrors()>0){System.err.println("TransformationrunFailure!");}else{System.out.println("Transformationrunsuccessfully!");}}catch(KettleExceptione){e.printStackTrace();}}}

  • 上一篇:Python性能提升神器!lru_cache的介紹和講解
  • 下一篇:漫談Java加密技術(二)
  • copyright 2024編程學習大全網