Java 使用spring-jdbc或hibernate在运行时进行多个数据库连接

Java 使用spring-jdbc或hibernate在运行时进行多个数据库连接,java,spring-mvc,spring-boot,Java,Spring Mvc,Spring Boot,我有一个主数据库。登录主数据库后,我有一些其他数据库。是否可以在运行时使用springjdbc或hibernate连接到第二个db,并拥有第一个db(masterdb)应用程序的实例, 提前谢谢。好的,当然可以。您可以根据需要创建任意数量的数据源。只需在Spring上下文中定义它们,并在类中自动关联即可。这可能有助于您定义具有相同类型但名称不同的组件 UPD1:您可以在运行时创建数据源,如下所示: DataSource ds = new DataSource(); ds.setU

我有一个主数据库。登录主数据库后,我有一些其他数据库。是否可以在运行时使用
springjdbc
或hibernate连接到第二个db,并拥有第一个db(masterdb)应用程序的实例,
提前谢谢。

好的,当然可以。您可以根据需要创建任意数量的数据源。只需在Spring上下文中定义它们,并在类中自动关联即可。这可能有助于您定义具有相同类型但名称不同的组件

UPD1:您可以在运行时创建数据源,如下所示:

    DataSource ds = new DataSource();
    ds.setUsername("username");
    ds.setPassword("password");
    ds.setDriverClassName("com.mysql.jdbc.Driver"); // or another driver
    ds.setUrl("jdbc:mysql://{hostname}:{port}/{dbName}?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false");
    ds.setTestWhileIdle(true);
    ds.setTestOnBorrow(true);
    ds.setTestOnReturn(false);
    ds.setValidationQuery("/* ping */ SELECT 1");
    ds.setValidationQueryTimeout(1);
    ds.setValidationInterval(30000);
    ds.setTimeBetweenEvictionRunsMillis(30000);        
    ds.setMinIdle(1);
    ds.setMaxWait(10000);        
    ds.setMaxIdle(10);
    ds.setInitialSize(10);
    ds.setMinEvictableIdleTimeMillis(30000);

你好,罗曼,谢谢你的回复,我第一次不知道第二个数据库。登录master db后我知道了。