JudeForData,数据库数据导入工具

xiaoxiao2026-03-17  7

PowerBuilder的数据管道、MS Sqlser的数据导入工具借助ODBC可以支持所有的数据库,可以设置导入导出的表和列的对应关系,可以导出部分数据,但对于不同数据库的日期、BLOB、CLOB类型就无能为力了,而且也不能导入多个表,并且按着表的外键顺序先后导入数据。JudeForData就解决这样的问题,但目前版本没有图形化界面可以设置导入导入表的对应关系。版本0.6.1.1(2009.08.14)1.支持Oracle、MS Sqlserver、DB2、MySql、PostGreSQL数据库。

   支持日期/时间/时间戳类型的自动转换

   支持BLOB/CLOB导入

   可输出SQL 

   可输出建库脚本

   可输出文本格式的数据文件

   可输出EXCEL式的数据文件

   可选择源数据库和目的数据库的字符集

   支持表名不同、列名不同的数据导入

   优化大数据量的数据导入,使用索引查询

 

   已知缺陷:   源表一次只能导入到一个目的表

2.支持数据类型

 

 

 postgresqloracle整型smallintBINARY_INTEGER integerPLS_INTEGER bigint  serialINTEGER bigserialINT SMALLINTNUMBER浮点型decimalDEC numericDECIMAL realDOUBLE PRECISIONdouble precisionFLOAT NUMERIC REAL 字符类型character varying(n), varchar(n)CHAR,CHARACTER  character(n), char(n)LONG , LONG RAW  VARCHAR2  RAW  NCHAR,NVARCHAR2 textCLOB二进制数据类型byteaBLOB         日期/时间类型timestamp [ (p) ] [ without time zone ]DATE timestamp [ (p) ] with time zone  date  time [ (p) ] [ without time zone ]  time [ (p) ] with time zone 

 

 

 sqlservermysqldb2整型bigintSERIALSMALLINT intTINYINTINTEGER/ INT smallintSMALLINTBIGINT tinyintMEDIUMINT  bitINT   INTEGER   BIGINT 浮点型decimalFLOATDECIMAL(p,s) numericDOUBLEDEC(p,s)  realDOUBLE PRECISIONNUMERIC(p,s)   DECIMAL,DECNUM(p,s)   REAL   DOUBLE        字符类型charCHARCHAR(n) varcharVARCHARVARCHAR(n)   CHARACTER VARYING(n) nchar.nvarchar CHAR VARYING(n)   LONG VARCHAR text,ntextTEXT,LONGTEXT,TINYTEXTCLOB(n[K|M|G])二进制数据类型imageTINYBLOBBLOB binaryBLOB  varbinaryMEDIUMBLOB   LONGBLOB 日期/时间类型timestampDATEDATE  DATETIMETIME  TIMESTAMPTIMESTAMP

 

 

3.需要JDK/JRE1.5以上版本

 

 

4.运行文件run_exe.bat说明

4.1.set PATH=%PATH%

如果没有配置Java到系统环境变量,则修改上面的部分set PATH=%PATH%;D:\Java\jdk1.6.0_11\bin

4.2.lib目录包括jdbc等jar,为当前运行目录的子目录lib,如果拷贝到了其它位置,则修改set PROJECT_LIB=.\lib\

4.3可以更改默认配置文件config.xml

输出目录,在run.bat中修改 JudeForData.exe %LIB_PATH% -Dconfig_file=config_my_post.xml

 

config.xml文件配置说明: 

1.source为源数据库、destination为目的数据库,源、目的数据库只能各有一个

源数据库例子:

<source> <type>postgresql</type> <driver>org.postgresql.Driver</driver> <url>jdbc:postgresql://127.0.0.1:5432/testdb</url> <username>postgres</username> <password>manager</password> <schema>public</schema> <charset></charset> </source>

 

目的数据库例子:

<destination> <type>oracle</type> <driver>oracle.jdbc.driver.OracleDriver</driver> <url>jdbc:oracle:thin:@127.0.0.1:1521:orcl</url> <username>MYDBUSER</username> <password>oracle</password> <schema>MYDBUSER</schema> </destination>

 

如果导出数据库的建表文件等,源数据库的type及连接等可以写一样

如果只导出文件而不导入数据到目的数据库,目的数据连接除type其它项可以任意

 

2.type要求填写sqlserver、mysql、oracle、db2、postgresql

   driver填写jdbc driver

   url、username、password填写连接数据库参数

   schema在oracle、sqlserver中理解为用户名、mysql中为database、postgresql为模式

   charset填写数据库字符集,例如:utf-8、iso-8859-1、gb2312等,可以不填写(空白),也可以不选择这项.不填写或者不选择都不处理.

 

3.commit_rows为导入过程中每张表每次提交的记录数,对于CLOB、BLOB每一次只导入一条记录一个CLOB、BLOB列

 

4.导入表

4.1导入schema下的所有表,目的数据库没有的表不导入

 

<tables></tables>

 

4.2导入部分表,不用考虑表之间的外键关系而按顺序列出,导入过程自动处理

<tables> <table>TEST1</table> <table>TEST2</table> </tables>

 

4.3导入表的部分数据,where查询条件,不包括where关键字

<table where="COL1=1">TEST1</table>

 

4.4目的表和源表不同名,列名相同

 

<table destination="TABLE2"> TABLE1 </table>

 

4.5目的表和源表不同名,列名也不相同

<table destination="TABLE2">TABLE1 <column destination="">COLUMN1</column><!-- 列名相同 --> <column destination="COLUMN33">COLUMN2</column> <column destination="COLUMN33">COLUMN3</column> </table>

 

4.6可以在表上设置字符集,只对表有效,适用于mysql表的字符集不同于数据库的字符集的情况. 

<table charset="gb2312">TEST1</table>

  

 

 

5.导入过程

 

 

编码说明1读取源数据2导入数据4导入CLOB数据8导入BLOB数据16生成导入脚本32生成建库脚本

64      TAB分割的文本文件

128    EXCEL文件

 

其中16sql脚本、64txt文件、128excel文件每一个表一个文件,分别输出到当前目录下的sql、txt、excel目录

      32建库脚本,2个文件,create.sql和drop.sql,输出到当前目录下的db目录

      可以更改输出目录,在run.bat中修改 JudeForData.exe %LIB_PATH% -Doutput_dir=D:\data

     输出excel文件采用了apache的poi, 为了控制内存溢出的问题,每个excel文件最多输出1万条记录,一个表输出到若干个文件中

     程序在不输出excel文件的情况下,消耗内存控制在6M,并且长时间运行也没有问题

     输出excel文件时,内存消耗60M左右.

 

<process>1</process>

 

process的值为上面编码N项的和(N>=1),其中编码1为必选项

process可能的值有1、3(1+2)、7(1+2+4)、15(1+2+4+8)、5(1+4)、9(1+8)、11(1+2+8)、13(1+4+8)等等

 

 

 

相关资源:敏捷开发V1.0.pptx
转载请注明原文地址: https://www.6miu.com/read-5046070.html

最新回复(0)