“Spring Boot连MySQL”的版本间的差异
跳到导航
跳到搜索
Jihongchang(讨论 | 贡献) (→添加依赖) |
Jihongchang(讨论 | 贡献) (→添加依赖) |
||
第69行: | 第69行: | ||
引入当前项目就可以了。 | 引入当前项目就可以了。 | ||
− | 有的地方说还要指定 mysql-connector-java 的 | + | |
+ | |||
+ | |||
+ | |||
+ | ===== 有的地方说还要指定 mysql-connector-java 的 version,才可以良好兼容 ===== | ||
+ | |||
+ | |||
+ | 比如: | ||
+ | |||
=== application.xml === | === application.xml === | ||
<syntaxhighlight lang="yaml"> | <syntaxhighlight lang="yaml"> |
2022年12月12日 (一) 06:30的版本
https://www.bilibili.com/video/BV19K4y1L7MT/?p=60
pom.xml
继承
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
……
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.0</version>
</parent>
……
</project>
添加依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
……
<dependencies>
……
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
……
</dependencies>
……
</project>
spring-boot-starter-data-jdbc 提供了 spring 对于连接关系型数据库进行封装的类库,但并没有提供具体连接数据库的驱动(driver)。
具体使用什么驱动、哪个驱动又取决于要连哪个数据库、什么版本的数据库。
比如:本例连 MySQL 数据库,就是 mysql-connector-java。
如果要连其他数据库,比如 MS SQL Server,就在 pom.xml 继承的 spring-boot-starter-parent 继承的 spring-boot-dependencies 里找,找到:
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>${mssql-jdbc.version}</version>
</dependency>
就是了,又比如 PostgreSQL ,就是:
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>${postgresql.version}</version>
</dependency>
引入当前项目就可以了。
有的地方说还要指定 mysql-connector-java 的 version,才可以良好兼容
比如:
application.xml
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/guns
username: root
password: 123456
# type: com.zaxxer.hikari.HikariDataSource
去哪找 url?
默认使用的 数据源/连接池 实现就是 Hikari
可以查看 spring-boot-autoconfigure-x.x.x.jar 中的自动配置类:
package org.springframework.boot.autoconfigure.jdbc;
……
abstract class DataSourceConfiguration {
@Configuration(proxyBeanMethods = false)
@ConditionalOnClass(HikariDataSource.class)
@ConditionalOnMissingBean(DataSource.class)
@ConditionalOnProperty(name = "spring.datasource.type", havingValue = "com.zaxxer.hikari.HikariDataSource",
matchIfMissing = true)
static class Hikari {
@Bean
@ConfigurationProperties(prefix = "spring.datasource.hikari")
HikariDataSource dataSource(DataSourceProperties properties) {
HikariDataSource dataSource = createDataSource(properties, HikariDataSource.class);
if (StringUtils.hasText(properties.getName())) {
dataSource.setPoolName(properties.getName());
}
return dataSource;
}
}
……