Spring Boot在MySQL中连接多个架构

Jee*_*ets 1 spring jdbc spring-boot

我无法配置如何使用Spring Boot连接到多个架构。到现在为止,在Spring 4XML配置中,我只能将DB URL设置为:jdbc:mysql://180.179.57.114:3306/?zeroDateTimeBehavior=convertToNull并且在实体类中指定要使用的架构,从而能够连接到多个架构。

但是,使用Spring Boot我无法实现相同的目标。如果在application.properties中,我仅指定不带模式的JDBC URL,则会出现错误:

没有选择数据库

即使我在实体类中指定了架构名称。请提出如何在Spring Boot中实现相同的目标?谢谢。

小智 6

之所以说“未选择数据库”是因为您在端口号后面加上了斜杠。这应该工作...

jdbc:mysql://180.179.57.114:3306?zeroDateTimeBehavior=convertToNull
Run Code Online (Sandbox Code Playgroud)

我花了很多时间让Hibernate使用一个MySQL实例和多个模式。

我最终将连接指定为:

jdbc:mysql://localhost:3306/schema1?useSSL=false&useUnicode=yes&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
Run Code Online (Sandbox Code Playgroud)

而我的实体为:

@Entity    
@Table(name="table1", schema="schema1", catalog="schema1")
public class Table1 {
   @Id
   private int id;
}

@Entity
@Table(name="table2", schema="schema2", catalog="schema2")
public class Table2 {
   @Id
   private int id;
}
Run Code Online (Sandbox Code Playgroud)

显然,JDBC将MySQL模式视为目录。我在没有指定架构的情况下尝试了上述方法,但它确实有效,但是对于集成测试,我使用的是HSQL,因此我将架构保留在@Table定义中。

希望这对某人有帮助。