信创迁移适配预研-SpringBoot连接达梦数据库DM8服务并在IDEA中连接

简介: 信创迁移适配预研-SpringBoot连接达梦数据库DM8服务并在IDEA中连接

背景


安装完数据库服务后,来试一下 SpringBoot 与达梦数据库集成,然后测试下基础的 CRUD 操作以及事务支持功能。


由于本系列文章仅用于记录当时项目的国产化迁移过程,不涉及太多的理论内容,基本都是一系列的操作过程,所以行文上就直接上操作了。如果您有任何疑问,欢迎留言评论。


从前车马很慢,书信很远,一生只够爱一个人。

如今生活太快,时间太少,不要绕圈子,给我来个痛快的。


SpringBoot连接达梦数据库


  • 依赖


以下通过外部依赖的方式集成达梦的依赖,实际部署时可通过 maven 将依赖包安装到本地仓库再进行引用。

<dependency>
            <groupId>com.DmJdbcDriver18</groupId>
            <artifactId>DmJdbcDriver18</artifactId>
            <version>18.0.0</version>
            <scope>system</scope>
            <systemPath>${project.basedir}/extralib/DmJdbcDriver18.jar</systemPath>
        </dependency>
  • 连接配置
spring:
  datasource:
    username: "SMARTCITY"
    password: "SMART_CITY123"
    driver-class-name: dm.jdbc.driver.DmDriver
    url: jdbc:dm://hadoop3:5236

Note:达梦 SQL 查询必须指定 from 库名. 表名,除非用户名和库名一致时可省略库名,这里我们都是在 SMARTCITY 库下操作。


  • 集成MyBatisPlus
mybatis-plus:
  configuration:
    # 开启下划线转驼峰
    map-underscore-to-camel-case: true
    # 指定默认枚举类型的类型转换器
    default-enum-type-handler: com.baomidou.mybatisplus.extension.handlers.MybatisEnumTypeHandler
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  global-config:
    # 开启/关闭 banner 打印
    banner: false
    db-config:
      # 逻辑删除(软删除)
      logic-delete-value: NOW()
      logic-not-delete-value: 'NULL'
  mapper-locations: classpath:mapper/*.xml


数据库测试


测试用例:基础的 CRUD 操作以及事务支持。

@SpringBootTest
class DmtestApplicationTests {
    @Autowired
    CityService cityService;
    @Test
    public void selectTest(){
        List<City> list = cityService.list();
        System.out.println(list);
    }
    @Test
    public void insertTest(){
        City city = new City();
        city.setCityName("太原");
        city.setRegionId(43);
        cityService.save(city);
    }
    @Test
    @Transactional
    public void insertTest2() throws Exception {
        City city = new City();
        city.setCityName("石家庄");
        city.setRegionId(41);
        cityService.save(city);
        int x = 1/0;
        City city2 = new City();
        city2.setCityName("西安");
        city2.setRegionId(46);
        cityService.save(city);
    }
}

经过测试,发现通过 SpringBootMyBatisPlus 以及达梦数据库集成后,写入、查询、事务都是正常(事务会回滚)的。

image.png

Note: 数据写入可以通过SQL语句,或者DM数据迁移工具实现。


在IDEA中连接达梦数据库


我们知道, IDEA 中可以连接各类数据库 MySQLMongoDB 等,其实我们通过手动添加驱动,也可实现对达梦数据库的支持。


  • 添加数据源

image.png

  • 测试连接

image.png

  • 在IDEA中查看数据

image.png


目录
相关文章
|
7月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
8月前
|
存储 运维 关系型数据库
从MySQL到云数据库,数据库迁移真的有必要吗?
本文探讨了企业在业务增长背景下,是否应从 MySQL 迁移至云数据库的决策问题。分析了 MySQL 的优势与瓶颈,对比了云数据库在存储计算分离、自动化运维、多负载支持等方面的优势,并提出判断迁移必要性的五个关键问题及实施路径,帮助企业理性决策并落地迁移方案。
|
10月前
|
人工智能 运维 关系型数据库
数据库运维:mysql 数据库迁移方法-mysqldump
本文介绍了MySQL数据库迁移的方法与技巧,重点探讨了数据量大小对迁移方式的影响。对于10GB以下的小型数据库,推荐使用mysqldump进行逻辑导出和source导入;10GB以上可考虑mydumper与myloader工具;100GB以上则建议物理迁移。文中还提供了统计数据库及表空间大小的SQL语句,并讲解了如何使用mysqldump导出存储过程、函数和数据结构。通过结合实际应用场景选择合适的工具与方法,可实现高效的数据迁移。
1516 1
|
12月前
|
存储 关系型数据库 数据挖掘
【瑶池数据库动手活动及话题本周精选(体验ADB、 SelectDB,参与 RDS 迁移训练营)】(4.21-4.27)
本文为 “瑶池数据库动手活动及话题精选” 系列第一期,聚焦 SelectDB 日志分析、AnalyticDB Zero-ETL 集成、RDS 迁移训练营三大实战,设积分、实物等多重奖励,同步开启话题互动。点击链接参与,每周解锁数据库实战新场景。
|
6月前
|
NoSQL Java 网络安全
SpringBoot启动时连接Redis报错:ERR This instance has cluster support disabled - 如何解决?
通过以上步骤一般可以解决由于配置不匹配造成的连接错误。在调试问题时,一定要确保服务端和客户端的Redis配置保持同步一致。这能够确保SpringBoot应用顺利连接到正确配置的Redis服务,无论是单机模式还是集群模式。
538 5
|
12月前
|
SQL Oracle 关系型数据库
用 YashanDB Migration Platform,数据库迁移不再是“高风险动作”
数据库迁移一直是企业信息化中的难题,耗时长、风险高。YashanDB Migration Platform(YMP)提供一站式解决方案,涵盖评估、改写、迁移与校验全流程。其核心能力包括SQL自动适配、智能对象迁移、高性能数据通道及数据对比校验,显著降低人力成本与业务风险。适合从Oracle、MySQL等迁移到YashanDB的企业,以及需异构整合或国产化替代的集团、政府和国企项目。YMP不仅是工具,更是推动数据库国产化的关键平台。
|
10月前
|
关系型数据库 MySQL 数据库
MySQL数据库上云迁移
本文介绍了将数据库迁移到RDS for Mysql的两种主要方法:停服迁移和不停服迁移。停服迁移适合可短暂中断服务的场景,通过mysqldump或DTS完成;不停服迁移适用于需保持业务连续性的场景,推荐使用DTS实现结构、全量及增量数据迁移。文中详细列出了每种方法的具体操作步骤,帮助企业根据需求选择合适的迁移方案。
310 1
MySQL数据库上云迁移

热门文章

最新文章