在Spring Cloud项目中集成MySQL、MyBatis-Plus与HikariCP
一. 小知识
mysql-connector-java 和 mysql-connector-j 的区别
mysql-connector-java 和 mysql-connector-j 实际上指的是同一个MySQL官方提供的JDBC驱动程序,但它们代表了这个驱动在不同时间点的命名。
- mysql-connector-java:这是旧的命名方式,长期以来用于指代MySQL官方提供的JDBC驱动。如果你之前使用过MySQL与Java应用程序进行交互,你可能会熟悉这个名字,并且在Maven依赖中也是以mysql-connector-java作为artifactId来引用的。
- mysql-connector-j:从某个版本开始(大约是2022年),MySQL官方决定将JDBC驱动的名称更改为mysql-connector-j。这次更名主要是品牌统一和清晰度提升的一部分,意在更好地反映产品为Java语言提供连接的能力。不过,尽管名字改变了,它仍然是原来的JDBC驱动,功能和用途没有改变。
旧版本坐标(适用于 8.0.30 及之前):
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.30</version>
</dependency>
新版本坐标(适用于 8.0.31 及之后):
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.0.31</version>
</dependency>
二. 开始引入
1. 添加依赖
首先,在pom.xml
文件中添加MySQL、Spring Data JPA(可选)、MyBatis-Plus以及HikariCP相关的依赖:
<dependencies>
<!-- MySQL Connector Java -->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.0.31</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
<version>3.5.9</version>
</dependency>
<!-- Spring Boot Starter Data JPA -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
</dependencies>
2. 配置数据源
yml配置文件
spring:
datasource:
# 数据库连接URL,包括数据库名、是否使用SSL及服务器时区设置等参数
url: jdbc:mysql://localhost:3306/xxx?useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
# 参数解释:
# useSSL=false: 禁用SSL连接(适用于本地或信任网络环境)
# serverTimezone=UTC: 设置服务器时区为UTC(根据实际情况调整)
# rewriteBatchedStatements=true: 启用批量执行优化,减少与数据库服务器之间的往返次数
username: root # 数据库用户名
password: xxx # 数据库密码
driver-class-name: com.mysql.cj.jdbc.Driver # JDBC驱动类名
hikari: # HikariCP连接池配置
maximum-pool-size: 10 # 连接池允许的最大连接数
minimum-idle: 5 # 连接池保持的最小空闲连接数
idle-timeout: 30000 # 空闲连接超时时间,单位为毫秒
pool-name: myHikariCP # 连接池的名字
max-lifetime: 1800000 # 连接存活的最大生命周期,单位为毫秒
connection-timeout: 30000 # 等待一个数据库连接的最大毫秒数
mybatis-plus:
## MyBatis-Plus的相关配置
mapper-locations: classpath*:/mapper/**/*.xml # Mapper XML文件的位置
global-config: # 全局配置
db-config: # 数据库配置
## 生成ID方式: AUTO 数据库自增 INPUT 自己输入 ASSIGN_UUID 默认生成器
#id-type: auto # 主键生成策略
## 逻辑删除字段
logic-delete-field: deleted # 逻辑删除字段名,默认为deleted
## 逻辑删除已删除值
logic-delete-value: 1 # 逻辑删除后字段的值,默认为1
## 逻辑删除未删除值
logic-not-delete-value: 0 # 逻辑未删除时字段的值,默认为0
configuration: # MyBatis核心配置
## 自动驼峰命名规则映射
map-underscore-to-camel-case: true # 开启自动将下划线命名转换为驼峰命名
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 日志实现类,这里设置为标准输出日志实现,便于调试
3. Mapper接口所在的包路径
@MapperScan("com.xxx.mapper")