Java 使SpringJDBC创建的模式成为默认模式

Java 使SpringJDBC创建的模式成为默认模式,java,mysql,spring,jdbc,spring-boot,Java,Mysql,Spring,Jdbc,Spring Boot,我正在使用SpringBoot和JDBC进行数据库连接。我将schema.sql放在类路径中以初始化模式和表 由于连接到数据源时架构尚不存在,因此我必须在application.properties中配置数据源,如下所示: spring.datasource.url=jdbc:mysql://localhost:3306/ schema.sql: CREATE DATABASE IF NOT EXISTS <schema_name> USE <schema.name>;

我正在使用SpringBoot和JDBC进行数据库连接。我将schema.sql放在类路径中以初始化模式和表

由于连接到数据源时架构尚不存在,因此我必须在application.properties中配置数据源,如下所示:

spring.datasource.url=jdbc:mysql://localhost:3306/
schema.sql:

CREATE DATABASE IF NOT EXISTS <schema_name>
USE <schema.name>;

CREATE TABLE...
创建数据库(如果不存在)
使用;
创建表格。。。
因此,我在创建模式后选择它。这显然不会持续太久


我如何正确配置它?有没有一种方法可以在创建脚本之后选择默认模式,或者更改数据源url?

对于JDBC,您需要使用
连接.setCatalog
在数据库之间切换。您不应该使用
use
,因为JDBC驱动程序本身需要知道它在哪个数据库上运行。

基于schema.sql中的代码

USE <schema.name>;
这会将默认db设置为db_名称。 假设:我假设您希望连接到单节点数据库,而不使用任何负载平衡器或故障切换机制。URL可能会根据要配置的这些功能进行更改

如果您没有在URL中指定DB_名称,则表示它们没有默认模式。 在这种情况下,有2个选项可以访问数据库

1) 始终使用
Connection.setCatalog()
方法在JDBC应用程序中指定所需的数据库,而不是使用数据库语句

2) 使用SQL中的数据库名称(即从dbname.tablename..中选择dbname.tablename.colname)完全指定表名。打开连接而不指定要使用的数据库通常仅在构建与多个数据库一起工作的工具(如GUI数据库管理器)时有用

有关更多详细信息,请参考下面的mysql门户

jdbc:mysql://localhost:3306/DB_NAME