[发明专利]一种自动生成从关系型数据库向MongoDB数据库数据迁移的代码的方法有效

专利信息
申请号: 201610454184.8 申请日: 2016-06-21
公开(公告)号: CN106095991B 公开(公告)日: 2019-07-09
发明(设计)人: 曹陈宸;马晓星;曹春 申请(专利权)人: 南京大学
主分类号: G06F16/21 分类号: G06F16/21
代理公司: 南京知识律师事务所 32207 代理人: 张苏沛
地址: 210046 江苏*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开了一种自动生成从关系型数据库向MongoDB数据库数据迁移的代码的方法,它包括以下步骤:步骤一、从配置文件中读取运行参数,并从关系型数据库中读取元数据;步骤二、根据元数据生成模型;步骤三、根据需求定制模型;步骤四、根据模型和模板生成代码。本发明的目的是辅助程序员进行从关系型数据库向MongoDB数据库迁移,主要是数据上的迁移。相比于自写脚本,本发明更具有一般性,相比于提取转化转载(ETL)工具,本发明在数据迁移之外也有部分代码迁移的辅助。
搜索关键词: 一种 自动 生成 关系 数据库 mongodb 数据 迁移 代码 方法
【主权项】:
1.一种自动生成从关系型数据库向MongoDB数据库数据迁移的代码的方法,其特征在于,包括以下步骤:步骤一、从配置文件中读取运行参数,并从关系型数据库中读取元数据;所述步骤一的具体步骤包括:步骤1.1 从配置文件中读取参数,配置文件由用户定义,需要定义的内容包括:生成代码、关系型数据库和MongoDB的相关参数;步骤1.2 从关系型数据库中读取所有表(table)的表名,根据表名读取每张表的元数据; 读入的元数据包括表的索引(index)信息、表的外键(foreign key)信息以及表中每一列(column)的列名; 根据列名读取列的元数据,包含列名,列的类型,小数点精度;步骤二、根据元数据生成模型;所述步骤二中根据元数据生成模型的具体步骤包括:步骤2.1 根据元数据生成模型,模型由上一步所获取的元数据生成,模型的类型为表(list);步骤2.2 对Table类中的表名命名转换,遍历每张表(table)中的列,对Column类中的列名命名转换进行获得在代码中使用的表名和列名,命名转换的方法如下:将原名转换为小写,将首字母大写,将下划线去掉,并将下划线后第一个字母大写;步骤2.3 遍历每张表(table)中的列,对Column类中的数据类型进行变换,变换方法如下:如果类型为TINYINT、SMALLINT时使用类型short;如果类型为INTEGER时使用类型int;如果类型为BIGINT时使用类型BigInteger;如果类型为REAL、FLOAT时使用类型float;如果类型为DOUBLE时使用类型double;如果类型为DECIMAL、NUMERIC时,若小数点精度为0,使用类型BigInteger,否则使用类型BigDecimal;如果类型为BIT、BOOLEAN时使用类型boolean;如果类型为CHAR、VARCHAR、LONGVARCHAR时使用类型String;如果类型为BINARY、VARBINARY、LONGVARBINARY时使用类型byte[];如果类型为DATE时使用类型Date;如果类型为TIME时使用类型Time;如果类型为TIMESTAMP时使用类型Timestamp;否则使用类型Object;步骤三、根据需求定制模型;所述步骤三中根据需求定制模型的具体步骤包括:步骤3.1 确认表名是否需要另外起名,如果需要,指出并修改表名,表名不能重复;步骤3.2 确认处理连接表的方式为内嵌还是引用,默认方式为引用,如果采用内嵌的方式处理连接表,只嵌套一层;步骤3.3 确认是否有额外的表需要连接,默认需要连接的表是有外键关系的表;如果需要,指出连接表和被连接表的表名和列名;步骤3.4 确认每张表的列名是否需要另外起名,如果需要,指出表名和列名,并修改列名,列名不能重复;步骤3.5 确认每张表是否有需要额外生成的方法,默认为每个单字段(列)正序生成一个方法;如果需要,指出方法名,方法名不能重复,哪些字段名,排序方式;如果需要更复杂的方法,给出实现方式;步骤四、根据模型和模板生成代码;所述步骤四中根据模型和模板生成代码的具体步骤包括:步骤4.1 根据模型和模板生成代码,首先是配置文件的生成,包括工程的配置文件、存放MongoDB配置的文件;步骤4.2 遍历模型中的每张表(table),生成表对应的实体(entity)以及获取数据方法的库(Repository);步骤4.3 生成运行文件:遍历模型中的每张表(table),生成插入表的代码,生成插入索引的代码,生成插入表中引用的代码;根据模型和模板生成代码,模板为预定义的关键字空缺的代码片段,根据需求不同预定义不同的模板,生成过程为先根据需求选择模板;根据模型补全模板;将补全后的模板组合生成代码;采用使用引用方式处理连接表、并且使用Spring Data框架的模板;组合模型和模板使用工具freemarker,所述freemarker是一种基于模板和要改变的数据来生成输出文本的通用工具。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201610454184.8/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top