1:yml配置类
spring:
datasource:
name: text
url: jdbc:mysql://192.168.11.50:3306/dsdd?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=UTC
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
这样启动项目,没有检查到是否连接数据库成功
2:数据库配置类(添加数据库检查)
package com.example.poi.utils;
/**
* @Author xu
* @create 2023/8/22 21
*/
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;
@Configuration
public class DatabaseConfig {
@Value("${spring.datasource.url}")
private String dataSourceUrl;
@Value("${spring.datasource.username}")
private String dataSourceUsername;
@Value("${spring.datasource.password}")
private String dataSourcePassword;
@Value("${spring.datasource.driver-class-name}")
private String dataSourceDriverClassName;
@Bean
public DataSource dataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setUrl(dataSourceUrl);
dataSource.setUsername(dataSourceUsername);
dataSource.setPassword(dataSourcePassword);
dataSource.setDriverClassName(dataSourceDriverClassName);
testConnection(dataSource); // 调用检查连接方法
return dataSource;
}
private void testConnection(DataSource dataSource) {
try (Connection connection = dataSource.getConnection()) {
System.out.println("数据库连接正常!");
} catch (SQLException e) {
// 连接异常处理
//e.printStackTrace();
throw new RuntimeException("数据库连接异常!");
}
}
}
3:或者通过在启动类添加数据库检测
@SpringBootApplication
public class YourApplication {
public static void main(String[] args) {
ConfigurableApplicationContext context = SpringApplication.run(YourApplication.class, args);
// 检查数据库连接是否正常
try {
/** 获取DataSource bean,并调用getConnection()方法测试连接*/
context.getBean(javax.sql.DataSource.class).getConnection();
System.out.println("数据库连接正常!");
} catch (Exception e) {
System.err.println("数据库连接异常:" + e.getMessage());
// 处理连接异常的逻辑
}
}
}