如何连接多个数据库Spring Boot JPA?

时间:2016-08-11 17:13:12

标签: java spring spring-boot spring-data-jpa

我正在尝试使用此示例https://github.com/spring-projects/spring-data-examples/tree/master/jpa/multiple-datasources对其进行建模,但他们似乎没有使用属性文件,这让我感到困惑。他们如何输入数据库名称,登录信息和网址?我目前的方式是这样的:

这是我的一个数据库的配置文件:LM_Config.java

@Configuration
@EnableJpaRepositories(entityManagerFactoryRef = "mtsEntityManagerFactory",
        transactionManagerRef = "mtsTransactionManager")
class MTS_Config {

    @Bean
    PlatformTransactionManager mtsTransactionManager() {
        return new JpaTransactionManager(mtsEntityManagerFactory().getObject());
    }

    @Bean
    LocalContainerEntityManagerFactoryBean mtsEntityManagerFactory() {

        HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
        vendorAdapter.setGenerateDdl(true);

        LocalContainerEntityManagerFactoryBean factoryBean = new LocalContainerEntityManagerFactoryBean();

        factoryBean.setDataSource(mtsDataSource());
        factoryBean.setJpaVendorAdapter(vendorAdapter);
        factoryBean.setPackagesToScan(MTS_Config.class.getPackage().getName());

        return factoryBean;
    }


    @Bean
    @Primary
    @ConfigurationProperties(prefix="spring.mtsDatasource")
    public DataSource mtsDataSource() {
        return DataSourceBuilder.create().build();
    }

}

这是我的一个数据库的配置文件:MTS_Config.java

spring.datasource...

这是我的application.properties文件。主要兴趣点应该是从spring.mtsDatasource...hibernate.dialect=org.hibernate.dialect.SQLServer2012Dialect hibernate.show_sql=true hibernate.format_sql=true hibernate.default_schema=dbo hibernate.packagesToScan=src.repositories.LMClientRepository.java spring.jpa.generate-ddl=true spring.jpa.hibernate.naming-strategy=org.hibernate.cfg.DefaultNamingStrategy spring.datasource.username=LOADdev spring.datasource.password=lmtdev01 spring.datasource.url=jdbc:sqlserver://schqvsqlaod:1433;database=dbMOBClientTemp;integratedSecurity=false; spring.datasource.testOnBorrow=true spring.datasource.validationQuery=SELECT 1 spring.jpa.database=dbMOBClientTemp spring.jpa.show-sql=true spring.jpa.hibernate.dialect=org.hibernate.dialect.SQLServer2012Dialect spring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver #spring.jpa.hibernate.ddl-auto=none #spring.jpa.hibernate.ddl-auto=none #spring.jpa.properties.hibernate.hbm2ddl.auto=none spring.mtsDatasource.username=mtsj spring.mtsDatasource.password=mtsjapps spring.mtsDatasource.url=jdbc:sqlserver://SCHQVSQLCON2\VSPD:1433;database=dbMTS;integratedSecurity=false; spring.mtsDatasource.testOnBorrow=true spring.mtsDatasource.validationQuery=SELECT 1

开始的
$.ajax()

1 个答案:

答案 0 :(得分:0)

  他们似乎没有使用属性文件,这让我感到困惑。他们如何输入数据库名称,登录信息和网址?

答案是该示例使用的是嵌入式数据库,因此没有数据库名称,用户名等。

对于您的主要问题,请查看侧栏中的类似问题,查看@Qualifier的文档,然后返回更具体的问题。