适配说明

Mysql与国产数据库对比

下面是MySQL与国产数据库(达梦DM、神州通用ShenTong、人大金仓Kingbase)在数据库、模式(Schema)、表(Table)管理方式上的对比表格:

特性/数据库系统MySQL达梦DM神州通用ShenTong人大金仓Kingbase
数据库(Database)- 数据库是一个逻辑容器,用于存储相关的对象。
- 创建:CREATE DATABASECREATE SCHEMA
- 数据库间相互独立。
- 类似于MySQL,数据库作为一个逻辑容器。
- 支持创建多个数据库实例。
- 强调数据的安全性和完整性。
- 数据库作为基本的数据组织单位。
- 提供对数据对象的管理和控制。
- 注重性能优化和安全性。
- 支持创建和管理多个数据库实例。
- 每个实例可以包含多个模式。
- 提供丰富的安全策略和数据保护机制。
模式(Schema)- 在实践中,模式通常等同于数据库。
- 严格来说,模式是数据库内的一个命名空间。
- 允许在同一数据库中定义多个模式以实现逻辑隔离。
- 模式是指数据库内部的一个逻辑分区,用来组织和隔离不同的用户对象集合。
- 模式名通常与用户名相同。
- 提供了更细粒度的对象访问控制。
- 支持模式的概念,允许在同一数据库内创建多个模式。
- 有助于实现更好的对象管理和权限控制。
- 模式间可以有相同的对象名而不冲突。
- 定义与标准SQL一致,是一个数据库对象的集合。
- 包括表、视图、索引等。
- 不同模式间可以有相同的对象名而不冲突。
- 提供灵活的权限管理。
表(Table)- 表是存储具体数据记录的基本单元。
- 每张表属于一个特定的数据库或模式。
- 支持多种数据类型和约束条件。
- 表同样是存储数据的基本单元,位于某个模式之下。
- 提供了针对特定需求的扩展特性,如分布式事务支持等。
- 强调高效的数据处理能力。
- 基于模式进行组织。
- 提供丰富的类型支持和优化机制。
- 支持复杂查询和数据分析功能。
- 表概念与其他关系型数据库相似。
- 可能包含针对特定需求的扩展特性,比如对分布式事务的支持等。
- 支持高级的查询优化技术。

适配的基本思路

环境安装

  1. 安装数据库
  2. 安装数据库管理工具
  3. 安装数据库迁移工具

数据库管理工具的基本使用

  1. 如何创建数据库实例
  2. 如何创建数据库模式
  3. 如何创建数据库表

数据库迁移

  1. 源数据库配置
  2. 目标数据库配置
  3. 迁移任务

框架适配

  1. 引入jdbc驱动包
  2. 驱动名称driver-class-name调整
  3. 连接url调整

达梦连接配置

application.yml配置
# Mysql数据库配置
spring:
  datasource:
    driver-class-name: dm.jdbc.driver.DmDriver
    url: jdbc:dm://${DB_HOST:localhost}:${DB_PORT:5236};SCHEMA=${DB_SCHEMA:MLDONG-PLUS}
    username: ${DB_USER:SYSDBA}
    password: ${DB_PASSWORD:8Eli#gr#AUk}
配置说明
  • DB_HOST 为数据库主机地址
  • DB_PORT 为数据库端口
  • DB_NAME 为数据库名称,对应的是安装的实例,这个找安装神州通用数据库的安装人员
  • DB_SCHEMA 为数据库模式名称
  • DB_USER 为数据库用户名
  • DB_PASSWORD 为数据库密码

神州通用连接配置

application.yml配置
# Mysql数据库配置
spring:
  datasource:
    driver-class-name: com.oscar.Driver
    url: jdbc:oscar://${DB_HOST:172.16.31.160}:${DB_PORT:2003}/${DB_NAME:xxx}?currentSchema=${DB_SCHEMA:M-TEST}
    username: ${DB_USER:root}
    password: ${DB_PASSWORD:8Eli#gr#AUk}
配置说明
  • DB_HOST 为数据库主机地址
  • DB_PORT 为数据库端口
  • DB_NAME 为数据库名称,对应的是安装的实例,这个找安装神州通用数据库的安装人员
  • DB_SCHEMA 为数据库模式名称
  • DB_USER 为数据库用户名
  • DB_PASSWORD 为数据库密码

人大金仓连接配置

application.yml配置
# Mysql数据库配置
spring:
  datasource:
    driver-class-name: com.kingbase8.Driver
    url: jdbc:kingbase8://${DB_HOST:localhost}:${DB_PORT:54321}/test?currentSchema=${DB_SCHEMA:mldong-plus}
    username: ${DB_USER:kingbase}
    password: ${DB_PASSWORD:123456}
配置说明
  • DB_HOST 为数据库主机地址
  • DB_PORT 为数据库端口
  • DB_NAME 为数据库名称
  • DB_SCHEMA 为数据库模式名称,在人大金仓中是不支持这个配置
  • DB_USER 为数据库用户名
  • DB_PASSWORD 为数据库密码