大话数据库

matevip 2021-6-3 大约 2 分钟

# 一、数据库封装的核心模块

# 2.1 mate-starter-database

此模块也集成了mate-starter-mybatis,此模块介绍参见2.2 主要集成了druid、Mybatis Plus和多租户的功能启用。

  • 引用方式
<dependency>
    <groupId>vip.mate</groupId>
    <artifactId>mate-starter-database</artifactId>
</dependency>
1
2
3
4

# 2.2 mate-starter-mybatis

此模块主要集成了自定义sql打印日志,比自带的模式更加美观。如下图所示:

顺便介绍下不美观的方式的实现方案简单实现介绍文章:

https://blog.csdn.net/bufegar0/article/details/108428445 (opens new window)

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
1
2
3
  • 引用方式
<dependency>
    <groupId>vip.mate</groupId>
    <artifactId>mate-starter-mybatis</artifactId>
</dependency>
1
2
3
4

# 2.3 mate-starter-datasouce

此模块集成了多数据源的方案 采用 @EnableDynamicDataSource 方式开启动态数据源

  • 引用方式
<dependency>
    <groupId>vip.mate</groupId>
    <artifactId>mate-starter-datasouce</artifactId>
</dependency>
1
2
3
4

# 二、数据库的配置

参见 doc/nacos/mate-local.yaml 里的配置参数,此项配置在nacos中

mate:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/matex?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull
    username: root
    password: root
1
2
3
4
5

在对应的模块,如mate-system模块中的数据库配置

spring:
  application:
    name: ${artifactId}
#数据源配置
  datasource:
    url: ${mate.datasource.url}
    username: ${mate.datasource.username}
    password: ${mate.datasource.password}
1
2
3
4
5
6
7
8

此项配置引用了nacos里配置的参数,这样只需要修改nacos里的配置,相应的配置也就进行了修改。

# 三、多数据库的支持

下面提供了一些样例,支持postgresqloraclesqlserver

# 3.1 配置驱动

spring:
  redis:
    ##redis 单机环境配置
    host: 127.0.0.1
    port: 6379
    password:
    database: 0
    ssl: false
    ##redis 集群环境配置
    #cluster:
    #  nodes: 127.0.0.1:7001,127.0.0.1:7002,127.0.0.1:7003
    #  commandTimeout: 5000
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    #driver-class-name: org.postgresql.Driver
    #driver-class-name: oracle.jdbc.OracleDriver
    #driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

各驱动都用 # 号注释了,按需开启即可。

# 3.2 配置参数示例

#项目模块集中配置
mate:
  #通用开发生产环境数据库地址(特殊情况可在对应的子工程里配置覆盖)
  datasource:
    # MySql
    url: jdbc:mysql://localhost:3306/matecloud-plus?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&tinyInt1isBit=false&allowMultiQueries=true&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
    username: root
    password: root
    # PostgreSQL
    #url: jdbc:postgresql://127.0.0.1:5432/matecloud-plus
    #username: postgres
    #password: 123456
    # Oracle
    #url: jdbc:oracle:thin:@127.0.0.1:1521:orcl
    #username: mate
    #password: mate
    # SqlServer
    #url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=mate
    #username: mate
    #password: mate
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

增加以上配置,默认就支持多数据库了,但是库表需要按对应数据库进行转换。后续会提供相关数据库的转换好的脚本,以备用。

上次编辑于: 2021年6月6日 17:30
贡献者: matevip