信创迁移适配预研-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


目录
相关文章
|
5月前
|
SQL Java 关系型数据库
Java连接MySQL数据库环境设置指南
请注意,在实际部署时应该避免将敏感信息(如用户名和密码)硬编码在源码文件里面;应该使用配置文件或者环境变量等更为安全可靠地方式管理这些信息。此外,在处理大量数据时考虑使用PreparedStatement而不是Statement可以提高性能并防止SQL注入攻击;同时也要注意正确处理异常情况,并且确保所有打开过得资源都被正确关闭释放掉以防止内存泄漏等问题发生。
244 13
|
5月前
|
SQL 关系型数据库 MySQL
MySQL数据库连接过多(Too many connections)错误处理策略
综上所述,“Too many connections”错误处理策略涉及从具体参数配置到代码层面再到系统与架构设计全方位考量与改进。每项措施都需根据具体环境进行定制化调整,并且在执行任何变更前建议先行测试评估可能带来影响。
1441 11
|
7月前
|
SQL XML Java
配置Spring框架以连接SQL Server数据库
最后,需要集成Spring配置到应用中,这通常在 `main`方法或者Spring Boot的应用配置类中通过加载XML配置或使用注解来实现。
592 0
|
Oracle NoSQL Java
SpringBoot | 1.4 数据库事务处理
前面讲解了Sring的AOP,可以知道它是用来抽取公共代码,增强方法的。而在JDBC操作数据库进行数据处理时,有很多重复的公共代码;事务的提交与回滚跟AOP的约定流程很相似。因此,Spring数据库事务编程的思想基于AOP的设计思想,数据库事务处理是AOP的一种典型应用。 注:在说明注解时,第一点加粗为注解中文含义,第二点为一般加在哪身上,缩进或代码块为示例,如: **@注解** - **中文含义** - 加在哪 - 其他…… - `语句示例` ```java //代码示例 ```
836 0
SpringBoot | 1.4 数据库事务处理
|
4月前
|
JavaScript Java 关系型数据库
基于springboot的项目管理系统
本文探讨项目管理系统在现代企业中的应用与实现,分析其研究背景、意义及现状,阐述基于SSM、Java、MySQL和Vue等技术构建系统的关键方法,展现其在提升管理效率、协同水平与风险管控方面的价值。
|
4月前
|
搜索推荐 JavaScript Java
基于springboot的儿童家长教育能力提升学习系统
本系统聚焦儿童家长教育能力提升,针对家庭教育中理念混乱、时间不足、个性化服务缺失等问题,构建科学、系统、个性化的在线学习平台。融合Spring Boot、Vue等先进技术,整合优质教育资源,提供高效便捷的学习路径,助力家长掌握科学育儿方法,促进儿童全面健康发展,推动家庭和谐与社会进步。
|
4月前
|
JavaScript Java 关系型数据库
基于springboot的古树名木保护管理系统
本研究针对古树保护面临的严峻挑战,构建基于Java、Vue、MySQL与Spring Boot技术的信息化管理系统,实现古树资源的动态监测、数据管理与科学保护,推动生态、文化与经济可持续发展。
|
4月前
|
监控 安全 JavaScript
2025基于springboot的校车预定全流程管理系统
针对传统校车管理效率低、信息不透明等问题,本研究设计并实现了一套校车预定全流程管理系统。系统采用Spring Boot、Java、Vue和MySQL等技术,实现校车信息管理、在线预定、实时监控等功能,提升学校管理效率,保障学生出行安全,推动教育信息化发展。

热门文章

最新文章