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

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 最近在做一个政府项目,由于项目之前使用的 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
目录
相关文章
|
18天前
|
消息中间件 Java Kafka
Springboot集成高低版本kafka
Springboot集成高低版本kafka
|
24天前
|
NoSQL Java Redis
SpringBoot集成Redis解决表单重复提交接口幂等(亲测可用)
SpringBoot集成Redis解决表单重复提交接口幂等(亲测可用)
264 0
|
29天前
|
关系型数据库 分布式数据库 数据库
成都晨云信息技术完成阿里云PolarDB数据库产品生态集成认证
近日,成都晨云信息技术有限责任公司(以下简称晨云信息)与阿里云PolarDB PostgreSQL版数据库产品展开产品集成认证。测试结果表明,晨云信息旗下晨云-站群管理系统(V1.0)与阿里云以下产品:开源云原生数据库PolarDB PostgreSQL版(V11),完全满足产品兼容认证要求,兼容性良好,系统运行稳定。
|
29天前
|
NoSQL Java Redis
SpringBoot集成Redis
SpringBoot集成Redis
407 0
|
1月前
|
NoSQL Java Redis
小白版的springboot中集成mqtt服务(超级无敌详细),实现不了掐我头!!!
小白版的springboot中集成mqtt服务(超级无敌详细),实现不了掐我头!!!
271 1
|
3天前
|
Java 关系型数据库 数据库
【SpringBoot系列】微服务集成Flyway
【4月更文挑战第7天】SpringBoot微服务集成Flyway
【SpringBoot系列】微服务集成Flyway
|
17天前
|
存储 关系型数据库 MySQL
【mybatis-plus】Springboot+AOP+自定义注解实现多数据源操作(数据源信息存在数据库)
【mybatis-plus】Springboot+AOP+自定义注解实现多数据源操作(数据源信息存在数据库)
|
18天前
|
Java 测试技术 数据库
SpringBoot启动时设置不加载数据库
SpringBoot启动时设置不加载数据库
10 0
|
18天前
|
SQL Java 调度
SpringBoot集成quartz定时任务trigger_state状态ERROR解决办法
SpringBoot集成quartz定时任务trigger_state状态ERROR解决办法
|
25天前
|
网络协议 数据库连接 网络安全
DM数据库连接数据库时报:创建sokect连接失败
DM数据库连接数据库时报:创建sokect连接失败
13 0