OpenJWeb 1.8数据库管理工具功能说明

迷途d书童 发布于 2012/03/09 12:18
阅读 67
收藏 0

 

QQ:29803446

msn:baozhengw999@hotmail.com

email:baozhengw@163.com

联系人:王先生

 

 

OpenJWeb 1.8数据库管理工具功能说明

 

由于使用sqlserver DTS跨数据库复制功能经常失败,所以openjweb开发组自行开发了数据库复制功能。

在使用DTSoracle导数据到sqlserver失败经常是由于以下问题造成:

(1)      主外键关联字段的长度不一样, oracle是允许的, sqlserver是不允许的。

(2)      Oralcenumber类型 转到sqlserver就变成float类型,而不是期望的bigint类型,如果手工设置,则需要大量的时间修改。

(3)      oracle中,定义了唯一索引的字段,允许不同记录的此唯一索引字段是空值,只在非空的时候在检验是否唯一,但在sqlserver中,唯一索引字段空值被认为是重复的,导入会失败。

(4)       

 

OpenJWeb数据库管理工具具有以下功能:

 

(1)       可为指定的数据库生成完整的建表语句、主外键、索引的DDL语法。目前已在oracle/sqlserver/mysql环境下测试通过。

(2)       可将指定的数据库的定义语句翻译成其他数据库的定义语句,例如指定一个oracle的数据源,可按sqlserver的语法格式生成数据库建表语句。

(3)       利用JDBC从数据库中获取表字段元信息,从而生成此数据库的表字段定义说明文档。表字段的列明、长度、小数位等信息是通过JDBC的调用获取的,表字段的中文说明信息是从OpenJWeb的表字段属性表中获取的。

(4)       实现跨数据库的数据完整复制。因为使用数据库开发工具导出文本SQL存在以下问题:

a)       由于主外键关系,插入表时需要遵循主键表在前,外键表在后的插入顺序,但很多数据库开发工具是按表名顺序导出数据的,所以导入数据时还要进行调整。

b)      二进制字段,例如图片字段不能通过纯文本的方式导出到sql文本文件中,所以需要通过程序直接从源库抓取数据复制到目的数据库,不需要中间导出sql文本文件。

 

 

下面是openjweb的数据库管理工具的介绍:

 

(1)       指定一个源数据库,并指定一个目标数据库类型,可生成目标数据库的建表语法,包括建表语句、主外键、索引定义语句。下图是指定了oracle数据源后,按sqlserver的语法结构生成sqlserver DDL的页面,生成的DDL语句用于在sqlserver中创建数据库表。

 

 

 

 

(2)       选择一个子系统,导出这个子系统的表字段说明文档(上图中在下拉框中选择子系统,然后点“表结构查询”按钮):

 

 

 

 

上表中字段名、数据类型、长度、小数位、可空、主键、缺省值等字段属性都是使用JDBC的标准API从数据库中获取的,字段中文名和注释是从openjweb平台的comm_column_def中获取的,表名的中文和注释是从openjweb平台的comm_table_def中获取的。使用此工具可代替手工编写数据库设计文档的工作,并使得设计文档与实际系统同步。

 

(3)       跨数据库的数据完整复制功能(当然同类型数据库复制也是可以的)

 

采用第1步生成的语法结构建立目标数据库后,然后可以使用数据复制功能,将所有表数据从源数据库复制到目标数据库,见下图(oraclemysql 的数据库复制。本平台目前已测通oraclemysqlsqlserver 的数据库复制):

 

 

 

上图是数据复制页面,当设置了源数据库和目标数据库参数后,点“开始复制”按钮,可将源数据库的所有数据复制到目标数据库中。(前提是目标数据库的表结构已按第1步生成)。导入时自动遵循先复制主键表,后复制外键表的原则(多层主外键也支持)。

 

平台因为有了上述功能,可以很方便地将最新的数据库版本转换为其他类型的数据库。不再需要花费大量的时间进行数据库转换工作。


原文链接:http://blog.csdn.net/baozhengw/article/details/4734651
加载中
返回顶部
顶部