开发技术KETTLE JAVA API 开发实战记录Word文件下载.docx

上传人:b****2 文档编号:5822149 上传时间:2023-05-05 格式:DOCX 页数:15 大小:18.78KB
下载 相关 举报
开发技术KETTLE JAVA API 开发实战记录Word文件下载.docx_第1页
第1页 / 共15页
开发技术KETTLE JAVA API 开发实战记录Word文件下载.docx_第2页
第2页 / 共15页
开发技术KETTLE JAVA API 开发实战记录Word文件下载.docx_第3页
第3页 / 共15页
开发技术KETTLE JAVA API 开发实战记录Word文件下载.docx_第4页
第4页 / 共15页
开发技术KETTLE JAVA API 开发实战记录Word文件下载.docx_第5页
第5页 / 共15页
开发技术KETTLE JAVA API 开发实战记录Word文件下载.docx_第6页
第6页 / 共15页
开发技术KETTLE JAVA API 开发实战记录Word文件下载.docx_第7页
第7页 / 共15页
开发技术KETTLE JAVA API 开发实战记录Word文件下载.docx_第8页
第8页 / 共15页
开发技术KETTLE JAVA API 开发实战记录Word文件下载.docx_第9页
第9页 / 共15页
开发技术KETTLE JAVA API 开发实战记录Word文件下载.docx_第10页
第10页 / 共15页
开发技术KETTLE JAVA API 开发实战记录Word文件下载.docx_第11页
第11页 / 共15页
开发技术KETTLE JAVA API 开发实战记录Word文件下载.docx_第12页
第12页 / 共15页
开发技术KETTLE JAVA API 开发实战记录Word文件下载.docx_第13页
第13页 / 共15页
开发技术KETTLE JAVA API 开发实战记录Word文件下载.docx_第14页
第14页 / 共15页
开发技术KETTLE JAVA API 开发实战记录Word文件下载.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

开发技术KETTLE JAVA API 开发实战记录Word文件下载.docx

《开发技术KETTLE JAVA API 开发实战记录Word文件下载.docx》由会员分享,可在线阅读,更多相关《开发技术KETTLE JAVA API 开发实战记录Word文件下载.docx(15页珍藏版)》请在冰点文库上搜索。

开发技术KETTLE JAVA API 开发实战记录Word文件下载.docx

  //addbychq(www.chq.name)on2006.07.20

  (后来发现,不必加这个引用,因为编译时不需要)

  五、编译准备,在eclipse中增加jar包,主要包括(主要依据extra\TransBuilder.bat):

  \lib\kettle.jar

  \libext\CacheDB.jar

  \libext\SQLBaseJDBC.jar

  \libext\activation.jar

  \libext\db2jcc.jar

  \libext\db2jcc_license_c.jar

  \libext\edtFTPj-1.4.5.jar

  \libext\firebirdsql-full.jar

  \libext\firebirdsql.jar

  \libext\gis-shape.jar

  \libext\hsqldb.jar

  \libext\ifxjdbc.jar

  \libext\javadbf.jar

  \libext\jconn2.jar

  \libext\js.jar

  \libext\jt400.jar

\libext\jtds-1.1.jar

  \libext\jxl.jar

  \libext\ktable.jar

  \libext\log4j-1.2.8.jar

  \libext\mail.jar

  \libext\mysql-connector-java-3.1.7-bin.jar

  \libext\ojdbc14.jar

  \libext\orai18n.jar

  \libext\pg74.215.jdbc3.jar

  \libext\edbc.jar

  (注意:

下面这个包被遗漏了,要加上。

原始位置kettle根目录\libswt\win32\swt.jar)

  \libswt\win32\swt.jar

  六、编译成功后,准备运行

  为使程序不必登陆就可以运行,需要设置环境署文件:

kettle.properties,位置在用户目录里,一般在\DocumentsandSettings\用户\.kettle\,主要内容如下:

  KETTLE_REPOSITORY=kettle@m80

  KETTLE_USER=admin

  KETTLE_PASSWORD=passwd

  七、好了,现在可以运行一下了,看看数据是不是已经拷贝到目标表了。

  以下为修改后的程序源码:

++++++++++++++++++++++++++++++++

packagename.chq.test;

importjava.io.DataOutputStream;

importjava.io.File;

importjava.io.FileOutputStream;

importbe.ibridge.kettle.core.Const;

importbe.ibridge.kettle.core.LogWriter;

importbe.ibridge.kettle.core.NotePadMeta;

importbe.ibridge.kettle.core.database.Database;

importbe.ibridge.kettle.core.database.DatabaseMeta;

importbe.ibridge.kettle.core.exception.KettleException;

importbe.ibridge.kettle.core.util.EnvUtil;

importbe.ibridge.kettle.trans.StepLoader;

importbe.ibridge.kettle.trans.Trans;

importbe.ibridge.kettle.trans.TransHopMeta;

importbe.ibridge.kettle.trans.TransMeta;

importbe.ibridge.kettle.trans.step.StepMeta;

importbe.ibridge.kettle.trans.step.StepMetaInterface;

importbe.ibridge.kettle.trans.step.selectvalues.SelectValuesMeta;

importbe.ibridge.kettle.trans.step.tableinput.TableInputMeta;

importbe.ibridge.kettle.trans.step.tableoutput.TableOutputMeta;

//这个包被遗漏了,原始位置kettle根目录\libswt\win32\swt.jar

//addbychq([link=http:

//www.chq.name]www.chq.name[/link])on2006.07.20

//importorg.eclipse.swt.dnd.Transfer;

/**

*Classcreatedtodemonstratethecreationoftransformationson-the-fly.

*

*@authorMatt

*

*/

publicclassTransBuilder

{

publicstaticfinalString[]databasesXML={

"

<

?

xmlversion=\"

1.0\"

encoding=\"

UTF-8\"

>

"

+

connection>

name>

target<

/name>

server>

192.168.17.35<

/server>

type>

ORACLE<

/type>

Access>

Native<

/access>

database>

test1<

/database>

port>

1521<

/port>

username>

testuser<

/username>

password>

pwd<

/password>

servername/>

data_tablespace/>

index_tablespace/>

attributes>

attribute>

code>

EXTRA_OPTION_MYSQL.defaultFetchSize<

/code>

500<

/attribute>

EXTRA_OPTION_MYSQL.useCursorFetch<

true<

PORT_NUMBER<

/attributes>

/connection>

source<

192.168.16.12<

∙ 

 

+

access>

test2<

pwd2<

∙"

};

/**

*CreatesanewTransformationusinginputparameterssUChasthetablenametoreadfrom.

*@paramtransformationNameThenameofthetransformation

*@paramsourceDatabaseNameThenameofthedatabasetoreadfrom

*@paramsourceTableNameThenameofthetabletoreadfrom

*@paramsourceFieldsThefieldnameswewanttoreadfromthesourcetable

*@paramtargetDatabaseNameThenameofthetargetdatabase

*@paramtargetTableNameThenameofthetargettablewewanttowriteto

*@paramtargetFieldsThenamesofthefieldsinthetargettable(samenumberoffieldsassourceFields)

*@returnAnewtransformation

*@throwsKettleExceptionIntherarecasesomethinggoeswrong

publicstaticfinalTransMetabuildCopyTable(

StringtransformationName,StringsourceDatabaseName,StringsourceTableName,

String[]sourceFields,StringtargetDatabaseName,StringtargetTableName,

String[]targetFields)

throwsKettleException

{

LogWriterlog=LogWriter.getInstance();

EnvUtil.environmentInit();

try

//

//Createanewtransformation...

TransMetatransMeta=newTransMeta();

transMeta.setName(transformationName);

//Addthedatabaseconnections

for(inti=0;

i<

databasesXML.length;

i++)

DatabaseMetadatabaseMeta=newDatabaseMeta(databasesXML[i]);

transMeta.addDatabase(databaseMeta);

}

DatabaseMetasourceDBInfo=transMeta.findDatabase(sourceDatabaseName);

DatabaseMetatargetDBInfo=transMeta.findDatabase(targetDatabaseName);

//Addanote

Stringnote="

Readsinformationfromtable["

+sourceTableName+"

]ondatabase["

+sourceDBInfo+"

]"

+Const.CR;

note+="

Afterthat,itwritestheinformationtotable["

+targetTableName+"

+targetDBInfo+"

;

NotePadMetani=newNotePadMeta(note,150,10,-1,-1);

transMeta.addNote(ni);

//createthesourcestep...

Stringfromstepname="

readfrom["

+sourceTableName+"

TableInputMetatii=newTableInputMeta();

tii.setDatabaseMeta(sourceDBInfo);

StringselectSQL="

SELECT"

+Const.CR;

sourceFields.length;

/*modibychq(www.chq.name):

use*toreplacethefields,经分析,以下语句可以处理‘*‘*/

if(i>

0)

selectSQL+="

"

elseselectSQL+="

selectSQL+=sourceFields[i]+Const.CR;

FROM"

+sourceTableName;

∙tii.setSQL(selectSQL);

StepLoadersteploader=StepLoader.getInstance();

Stringfromstepid=steploader.getStepPluginID(tii);

StepMetafromstep=newStepMeta(log,fromstepid,fromstepname,(StepMetaInterface)tii);

fromstep.setLocation(150,100);

fromstep.setDraw(true);

fromstep.setDescription("

+sourceTableName

+"

);

transMeta.addStep(fromstep);

//addlogictorenamefields

//UsemetadatalogicinSelectValues,useSelectValueInfo...

/*不必改名或映射addbychq(www.chq.name)on2006.07.20

SelectValuesMetasvi=newSelectValuesMeta();

svi.allocate(0,0,sourceFields.length);

for(inti=0;

i<

sourceFields.length;

i++)

svi.getMetaName()[i]=sourceFields[i];

svi.getMetaRename()[i]=targetFields[i];

Stringselstepname="

Renamefieldnames"

Stringselstepid=steploader.getStepPluginID(svi);

StepMetaselstep=newStepMeta(log,selstepid,selstepname,(StepMetaInterface)svi);

selstep.setLocation(350,100);

selstep.setDraw(true);

selstep.setDescription("

transMeta.addStep(selstep);

TransHopMetashi=newTransHopMeta(fromstep,selstep);

transMeta.addTransHop(shi);

fromstep=selstep;

//设定了新的起点bychq([link=http:

//Createthetargetstep...

//

//AddtheTableOutputMetastep...

Stringtostep

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2