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...