老系统数据迁移到新系统

 业务分析:在最近的工作日常当中接到了一个需求,要求将老系统数据迁移到新开发的系统,一看老系统采用的技术SSH,和现在新系统的技术断层,还有表结构和业务逻辑之间的处理都是需要从头解析,减少对新系统的影响,所以就写了一篇记录日志。

数据库系统

Mysql,但是新系统采用了多个数据库存储;

采用技术

采用Java编写程序实行搬迁效果,因为相对于判断来说,用程序执行会比自己操作要好得多;

框架

SpringBoot

pom.xml

    <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- 很不错的一款工具插件 --><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.6.1</version></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.3</version></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.4</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><!-- JSON 解析框架 FastJson --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.41</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.12</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope><exclusions><exclusion><groupId>org.junit.vintage</groupId><artifactId>junit-vintage-engine</artifactId></exclusion></exclusions></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin></plugins></build>

采用easyCode生成基本代码,具体可以看这篇博客

https://blog.csdn.net/qq_39074952/article/details/115370409

保存数据到JSON


效果

编写程序

 @Overridepublic String addMemberType() throws IOException {long startTime = System.currentTimeMillis();// 创建线程池读取文件ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();InputStream memberTypeInput = contextClassLoader.getResourceAsStream("medical_member_type.json");// 文件转换String memberTypeString = IOUtils.toString(Objects.requireNonNull(memberTypeInput), StandardCharsets.UTF_8);// 转换为集合List<MemberType> memberTypes = JSONArray.parseArray(memberTypeString, MemberType.class);// 新数据集合List<com.example.transfer.entity.entity.MemberType> memberTypeList = new ArrayList<>();// 封装到新数据库集合memberTypes.stream().forEach(memberType -> {// 创建会员类型com.example.transfer.entity.entity.MemberType memberType1 = newMemberType(memberType.getId().toString(), memberType.getName(), memberType.getCreateTime());memberTypeList.add(memberType1);});// 批插入语句int i = memberTypeService.insertBatch(memberTypeList);long endTime = System.currentTimeMillis();float excTime=(float)(endTime-startTime)/1000;log.info("总耗时:{}秒",excTime);// 关闭Objects.requireNonNull(memberTypeInput).close();return "总耗时"+excTime+"秒,插入数据:"+i+"条";}public com.example.transfer.entity.entity.MemberType newMemberType(String typeId,String name,String createTime){Date date = null;// 支付时间判断if(StrUtil.isEmpty(createTime)){date = new Date();}else{// hutools组件方法date = DateUtil.parse(createTime);}com.example.transfer.entity.entity.MemberType memberType =com.example.transfer.entity.entity.MemberType.builder().memberTypeId(typeId).memberTypeName(name).isDeleted(0).memberGrade(1).createTime(date).updateTime(new Date()).build();return memberType;}

执行批插入之后数据就到了新数据表里面的,注意业务逻辑的处理判断,我这个是最简单的一个表封装,如果是多个表之间关键,注意io流的关闭和stream流之间的管理处理。

java执行数据库数据迁移相关推荐

  1. pta段错误是什么意思_用Python执行Django数据迁移时报!(1091错误及解决方法)...

    前言: 今天为大家带来的内容是用Python执行Django数据迁移时报!(1091错误及解决方法)本文内容具有不错的参考意义,希望在此能够帮助到大家! 前几天在Pycharm 中的Terminal下 ...

  2. 用Python执行Django数据迁移时报!(1091错误及解决方法)

    前言: 今天为大家带来的内容是用Python执行Django数据迁移时报!(1091错误及解决方法)本文内容具有不错的参考意义,希望在此能够帮助到大家! 前几天在Pycharm 中的Terminal下 ...

  3. JAVA实现数据库数据导入/导出到Excel(POI)

    原文地址为: JAVA实现数据库数据导入/导出到Excel(POI) 准备工作: 1.导入POI包:POI下载地址http://mirrors.tuna.tsinghua.edu.cn/apache/ ...

  4. 使用java做mysql数据迁移时遇到的两个问题

    有个数据迁移的需求,需要将A数据库的数据迁移至数据库B. 我以为直接生成mysqldump脚本再跑一下就行了,但是发现并不行. 问题出在java.lang.Runtime类上. Runtime.exe ...

  5. oracle 数据库数据迁移解决方案

    大部分系统由于平台和版本的原因,做的是逻辑迁移,少部分做的是物理迁移,接下来把心得与大家分享一下 去年年底做了不少系统的数据迁移,大部分系统由于平台和版本的原因,做的是逻辑迁移,少部分做的是物理迁移, ...

  6. 数据库数据迁移失败,如何进行修复操作

    云数据库RDS(ApsaraDB for RDS,简称RDS)是一种稳定可靠.可弹性伸缩的在线数据库服务.基于飞天分布式系统和全SSD盘高性能存储,支持MySQL.SQL Server.Postgre ...

  7. mysql数据库数据迁移_MySQL数据库迁移详细步骤

    ========================================================================================== 一.背景简介 == ...

  8. mysql sqlserver schema_MySQL数据库数据迁移到SQLserver

    最近因工作需要,需要将mysql数据库迁移到sqlserver,仅仅是数据迁移,因此相对比较简单.对于mysql迁移到sqlserver,我们需要使用到mysql odbc驱动,然后透过sqlserv ...

  9. java获取mysql的数据_【助教】Java获取数据库数据展示

    本文将给出一个最简单的Java查询数据库中一张表的数据并将查询结果展示在页面的例子. 实际上,我们要解决以下两个问题: Java与数据库交互(以JDBC为例) 数据展示在前台页面(以Servlet+J ...

最新文章

  1. C语言必须会写的10道经典题(小白必看!)
  2. JS~对img标签进行优化,使用onerror进行默认图像显示
  3. YYDS!怪不得很多朋友去杭州,原来有10W+的福利!
  4. 诺顿本月将发布儿童网络安全软件
  5. python实现程序安装_使用python实现对windows软件包的安装和卸载
  6. php里面的mark,PHP CommonMarkCQL 用法 手册 | 示例代码
  7. 原生安卓10怎么打开面部识别_《原创》安卓系统手机只需一步立即提速翻倍,越久的手机越见效...
  8. log4j 打印线程号配置_Log4J日志整合及配置详解
  9. pyqt5下pushButton框保留用户历史输入
  10. tornado + supervisor + nginx + linux 亲身体验
  11. Visual Studio 201~ Code 格式检查
  12. 7-2 数列循环右移 (10 分)
  13. Git回滚到某个commit
  14. linux配置dhcp服务器时authoritative参数的作用
  15. 【iOS】Ineligible Devices || “无法下载应用程序”
  16. C语言打印多颜色字体,多功能打印,协助开发调试
  17. 祝大家2022幸福安康
  18. python selenium爬虫豆瓣_使用selenium+requests爬取豆瓣小组讨论列表
  19. kaggle网站注册登录流程详细介绍(小白必看)
  20. 第 13 周 / 编程题 - 新兵队列训练(选做)

热门文章

  1. ADS(Authenticated data structure)
  2. 和菜鸟一起学android4.0.3源码之USB wifi移植心得
  3. CDN还有这么多衍生品?! 云帆加速借技术创新笑傲短视频新蓝海
  4. 逐飞与龙邱英飞凌miniwiggler仿真器硬件接口适配与差异总结
  5. Win10下媲美apt的包管理工具 Scoop 的安装以及常用软件清单
  6. 北大国际医院:基于互联网医疗的移动诊疗方案分析与设计
  7. 如何核算一个软件开发项目的成本?
  8. VMware虚拟机无法连接外网怎么解决
  9. Tcp/IP 端口耗尽
  10. 名单公布!支持这些高校,冲“双一流”