大话数据库
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
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
2
3
- 引用方式
<dependency>
<groupId>vip.mate</groupId>
<artifactId>mate-starter-mybatis</artifactId>
</dependency>
1
2
3
4
2
3
4
# 2.3 mate-starter-datasouce
此模块集成了多数据源的方案
采用 @EnableDynamicDataSource
方式开启动态数据源
- 引用方式
<dependency>
<groupId>vip.mate</groupId>
<artifactId>mate-starter-datasouce</artifactId>
</dependency>
1
2
3
4
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
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
2
3
4
5
6
7
8
此项配置引用了nacos里配置的参数,这样只需要修改nacos里的配置,相应的配置也就进行了修改。
# 三、多数据库的支持
下面提供了一些样例,支持postgresql
、oracle
和sqlserver
# 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
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
增加以上配置,默认就支持多数据库了,但是库表需要按对应数据库进行转换。后续会提供相关数据库的转换好的脚本,以备用。