1、/add by chq(www.chq.name) on 2006.07.20(后来发现,不必加这个引用,因为编译时不需要)五、 编译准备,在eclipse中增加jar包,主要包括(主要依据extraTransBuilder.bat):libkettle.jarlibextCacheDB.jarlibextSQLBaseJDBC.jarlibextactivation.jarlibextdb2jcc.jarlibextdb2jcc_license_c.jarlibextedtFTPj-1.4.5.jarlibextfirebirdsql-full.jarlibextfirebirdsql.ja
2、rlibextgis-shape.jarlibexthsqldb.jarlibextifxjdbc.jarlibextjavadbf.jarlibextjconn2.jarlibextjs.jarlibextjt400.jarlibextjtds-1.1.jarlibextjxl.jarlibextktable.jarlibextlog4j-1.2.8.jarlibextmail.jarlibextmysql-connector-java-3.1.7-bin.jarlibextojdbc14.jarlibextorai18n.jarlibextpg74.215.jdbc3.jarlibexte
3、dbc.jar(注意 :下面这个包被遗漏了,要加上。原始位置kettle根目录libswtwin32swt.jar)libswtwin32swt.jar六、 编译成功后,准备运行为使程序不必登陆就可以运行,需要设置环境署文件:kettle.properties,位置在用户目录里,一般在 Documents and Settings用户.kettle,主要内容如下:KETTLE_REPOSITORY=kettlem80KETTLE_USER=admin KETTLE_PASSWORD=passwd七、 好了,现在可以运行一下了,看看数据是不是已经拷贝到目标表了。以下为修改后的程序源码:packa
4、ge name.chq.test;import java.io.DataOutputStream;import java.io.File;import java.io.FileOutputStream;import be.ibridge.kettle.core.Const;import be.ibridge.kettle.core.LogWriter;import be.ibridge.kettle.core.NotePadMeta;import be.ibridge.kettle.core.database.Database;import be.ibridge.kettle.core.dat
5、abase.DatabaseMeta;import be.ibridge.kettle.core.exception.KettleException;import be.ibridge.kettle.core.util.EnvUtil;import be.ibridge.kettle.trans.StepLoader;import be.ibridge.kettle.trans.Trans;import be.ibridge.kettle.trans.TransHopMeta;import be.ibridge.kettle.trans.TransMeta;import be.ibridge.
6、kettle.trans.step.StepMeta;import be.ibridge.kettle.trans.step.StepMetaInterface;import be.ibridge.kettle.trans.step.selectvalues.SelectValuesMeta;import be.ibridge.kettle.trans.step.tableinput.TableInputMeta;import be.ibridge.kettle.trans.step.tableoutput.TableOutputMeta;/这个包被遗漏了,原始位置kettle根目录libsw
7、twin32swt.jar/add by chq(link=http:/www.chq.namewww.chq.name/link) on 2006.07.20/import org.eclipse.swt.dnd.Transfer;/* * Class created to demonstrate the creation of transformations on-the-fly.* * author Matt * */public class TransBuilder public static final String databasesXML = +connectionnametar
8、getserver192.168.17.35typeORACLEAccessNativedatabasetest1port1521usernametestuserpasswordpwdservername/data_tablespace/index_tablespace/attributesattributecodeEXTRA_OPTION_MYSQL.defaultFetchSize500EXTRA_OPTION_MYSQL.useCursorFetchtruePORT_NUMBER/connection ,source192.168.16.12test2pwd2 ; /* * Create
9、s a new Transformation using input parameters sUCh as the tablename to read from. * param transformationName The name of the transformation* param sourceDatabaseName The name of the database to read from * param sourceTableName The name of the table to read from * param sourceFields The field names
10、we want to read from the source table * param targetDatabaseName The name of the target database * param targetTableName The name of the target table we want to write to * param targetFields The names of the fields in the target table (same number of fields as sourceFields) * return A new transforma
11、tion * throws KettleException In the rare case something goes wrong public static final TransMeta buildCopyTable( String transformationName,String sourceDatabaseName, String sourceTableName, String sourceFields, String targetDatabaseName, String targetTableName, String targetFields) throws KettleExc
12、eption LogWriter log = LogWriter.getInstance(); EnvUtil.environmentInit(); try / / Create a new transformation. TransMeta transMeta = new TransMeta(); transMeta.setName(transformationName); / Add the database connections for (int i=0;i0) selectSQL+=, else selectSQL+= selectSQL+=sourceFieldsi+Const.C
13、R;FROM +sourceTableName; tii.setSQL(selectSQL); StepLoader steploader = StepLoader.getInstance(); String fromstepid = steploader.getStepPluginID(tii); StepMeta fromstep = new StepMeta(log, fromstepid, fromstepname, (StepMetaInterface) tii); fromstep.setLocation(150, 100); fromstep.setDraw(true); fro
14、mstep.setDescription( + sourceTableName + ); transMeta.addStep(fromstep); / add logic to rename fields / Use metadata logic in SelectValues, use SelectValueInfo. /* 不必改名或映射 add by chq(www.chq.name) on 2006.07.20 SelectValuesMeta svi = new SelectValuesMeta(); svi.allocate(0, 0, sourceFields.length);
15、for (int i = 0; i sourceFields.length; i+) svi.getMetaName()i = sourceFieldsi; svi.getMetaRename()i = targetFieldsi; String selstepname = Rename field names String selstepid = steploader.getStepPluginID(svi); StepMeta selstep = new StepMeta(log, selstepid, selstepname, (StepMetaInterface) svi); sels
16、tep.setLocation(350, 100); selstep.setDraw(true); selstep.setDescription( transMeta.addStep(selstep); TransHopMeta shi = new TransHopMeta(fromstep, selstep); transMeta.addTransHop(shi); fromstep = selstep; /设定了新的起点 by chq(link=http: / Create the target step. / / Add the TableOutputMeta step. String tostep
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2