达梦(DM)4、SpringBoot集成MyBatisPlus+达梦数据库(DM)

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 最近在做一个政府项目,由于项目之前使用的 MySQL 数据库,为了适配国产化,需要将 MySQL 换成 达梦数据库(DM),本次我选择了达梦数据库8(DM8),以下是切换过程

一、引入达梦数据库驱动

与 MySQL 同样如此,也需要驱动包来连接 MySQL,只不过 SpringBoot 对 MySQL 做了集成,没有对达梦数据库做集成,所以,我们需要自己引入驱动包,这个驱动包通过 maven 仓库是下载不了的

由于我们之前是安装了达梦数据库(DM8)的,然后我们在其安装目录下是可以找到驱动包的

D:\dmdbms\drivers\jdbc

安装包在此目录下,如图所示:

这三个驱动包分别对应的是 JDK 的版本,我用的是 JDK 1.8 的,所以我选择的是 DmJdbcDriver18.jar 驱动包,将其放在 resources\lib\ 目录下

然后我们在 pom.xml 文件中,引入该文件

<!-- 达梦数据库驱动 -->
<dependency>
    <groupId>com.dm</groupId>
    <artifactId>DmJdbcDriver18</artifactId>
    <version>1.8</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/src/main/resources/lib/DmJdbcDriver18.jar</systemPath>
</dependency>

二、配置达梦数据库信息

与 MySQL 一样,我们也需要配置达梦数据的连接信息,在 application.yml 文件中,配置信息如下:

spring:
  # Mysql配置
  datasource:
    driver-class-name: dm.jdbc.driver.DmDriver
    url: jdbc:dm://127.0.0.1:5236/TEST?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&useSSL=true&characterEncoding=UTF-8
    # springboot2.0整合了hikari ,据说这是目前性能最好的java数据库连接池
    hikari:
      username: SYSDBA
      password: SYSDBA
      idle-timeout: 60000
      maximum-pool-size: 30
      minimum-idle: 10
      max-lifetime: 30000
      connection-test-query: SELECT 1

与 MySQL 配置信息不同如下:

driver

之前:com.mysql.cj.jdbc.Driver

现在:dm.jdbc.driver.DmDriver

url

之前:jdbc:mysql://127.0.0.1:3306/test?

现在:jdbc:dm://127.0.0.1:5236/TEST?

username

之前:root

现在:SYSDBA

password

之前:123456

现在:SYSDBA

然后在项目中的使用和 MySQL 完全一致

三、自定义 SQL 语句

我们在 xml 文件中自己写的 SQL 语句和 MySQL 有些不同,因为达梦数据库是由 Oracle 而来的,在语法上参照 Oracle 语法即可,我说一个我在使用中遇到的错误吧:

MySQL 语句:

SELECT
  id,
  `name`,
  sex,
  `status`,
  create_time 
FROM
  sys_user_info

DM8 语句:

SELECT
  ID,
  NAME,
  SEX,
  STATUS,
  CREATE_TIME
FROM
  SYS_USER_INFO

也就是说,在达梦数据库中写 SQL 语句对于 name,status 这种关键字上,不需要加引号,否则会报错

MyBatisPlus 针对达梦数据库默认会将表名和列名大写,所以我们不需要做任何改变,即可切换达梦数据库

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
6天前
|
XML Java 数据库连接
Springboot整合mybatisPlus操作数据库
MyBatis-Plus是MyBatis的增强工具,简化开发、提高效率。它提供官网文档,便于集成到SpringBoot项目中。集成步骤包括添加mybatis-plus-boot-starter和数据库驱动依赖,配置数据源,扫描Mapper类包。Mapper接口继承BaseMapper即可使用基本的CRUD操作。示例代码展示了Service层的增删改查实现。MyBatisPlus还支持逻辑删除、自动填充等功能,同时可与Mybatis XML配合使用,通过调整配置指定XML映射文件位置。
|
6天前
|
Java 关系型数据库 MySQL
springboot业务开发--springboot一键生成数据库文档
Screw是一个数据库文档生成工具,能自动化根据数据库表结构生成文档,减轻开发人员工作负担,支持MySQL、MariaDB、TiDB等多种数据库和HTML、Word、Markdown等格式。它依赖HikariCP数据库连接池和Freemarker模板引擎。通过在Spring Boot项目中添加相关依赖并配置,可以用代码或Maven插件方式生成文档。示例代码展示了如何在JUnit测试中使用Screw生成HTML文档。
|
6天前
|
存储 大数据 数据处理
矢量数据库与大数据平台的集成:实现高效数据处理
【4月更文挑战第30天】本文探讨了矢量数据库与大数据平台的集成,以实现高效数据处理。集成通过API、中间件或容器化方式,结合两者优势,提升处理效率,简化流程,并增强数据安全。关键技术支持包括分布式计算、数据压缩编码、索引优化和流处理,以优化性能和实时性。随着技术发展,这种集成将在数据处理领域发挥更大作用。
|
6天前
|
SQL 分布式计算 DataWorks
DataWorks操作报错合集之在DataWorks数据集成中,但是预览ODPS源数据库为空,是什么导致的
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
20 0
|
7天前
|
分布式计算 DataWorks 关系型数据库
DataWorks产品使用合集之在使用 DataWorks 数据集成同步 PostgreSQL 数据库中的 Geometry 类型数据如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
17 0
|
10天前
|
存储 Java 数据库
SpringBoot使用jasypt实现数据库配置加密
这样,你就成功地使用Jasypt实现了Spring Boot中的数据库配置加密,确保敏感信息在配置文件中以加密形式存储,并在应用启动时自动解密。
38 2
|
27天前
|
存储 关系型数据库 MySQL
【mybatis-plus】Springboot+AOP+自定义注解实现多数据源操作(数据源信息存在数据库)
【mybatis-plus】Springboot+AOP+自定义注解实现多数据源操作(数据源信息存在数据库)
|
28天前
|
Java 测试技术 数据库
SpringBoot启动时设置不加载数据库
SpringBoot启动时设置不加载数据库
10 0
|
5天前
|
关系型数据库 MySQL Linux
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
|
5天前
|
SQL 关系型数据库 MySQL
【MySQL-5】DDL的数据库操作:查询&创建&删除&使用(可cv代码+演示图)
【MySQL-5】DDL的数据库操作:查询&创建&删除&使用(可cv代码+演示图)