import com.zaxxer.hikari.HikariDataSource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Configuration;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import java.net.URI;
import java.net.URISyntaxException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
/**
* springboot 启动创建数据库
* @author liujiasheng
*/
@Configuration
@Slf4j
public class StartupCreateDatabase {
@Resource
private HikariDataSource dataSource;
@PostConstruct
public void init() throws ClassNotFoundException, URISyntaxException, SQLException {
// 通过 hikari 获取数据库连接信息
String driver = dataSource.getDriverClassName();
String url = dataSource.getJdbcUrl();
String username = dataSource.getUsername();
String password = dataSource.getPassword();
Class.forName(driver);
URI uri = new URI(url.replace("jdbc:", ""));
String host = uri.getHost();
int port = uri.getPort();
String path = uri.getPath();
String connectUrl = "jdbc:mysql://" + host + ":" + port;
try (Connection connection = DriverManager.getConnection(connectUrl, username, password);
Statement statement = connection.createStatement()) {
// 创建数据库
statement.executeUpdate("CREATE DATABASE IF NOT EXISTS `" + path.replace("/", "") + "` DEFAULT CHARACTER SET = `utf8` COLLATE `utf8_general_ci`;");
}
}
}
springboot 启动时创建数据库
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 工具:eclipse需求:客户电脑上已经安装了mysql(建议用户名root 密码1234--不然要改密码),现在...
- 如何在SpringBoot2启动时自动创建表、插入数据 一、springboot2中如何根据实体类自动生成表 只需...
- 1. 添加maven依赖(基于SpringBoot 2.1.1.RELEASE版本) 2.操作 功能介绍:当项目启...
- 1. 前言 Docker在开发中使用的越来越多了,最近搞了一个Spring Boot应用,为了方便部署将Mysql...
- 第一步创建springboot项目,jpa,mysql,代码如下:application.yml 实体类 运行sp...