Spring boot 多个数据源和自动连接的JDBC模板导致Spring Boot中的SQL语法错误

Spring boot 多个数据源和自动连接的JDBC模板导致Spring Boot中的SQL语法错误,spring-boot,jdbctemplate,Spring Boot,Jdbctemplate,我正在使用现有的Spring启动应用程序。application.properties文件指定一个“spring.datasource”数据库。通过Spring的魔力,以下NamedParameterJdbcTemplate在整个代码中使用了此数据源: @Autowired NamedParameterJdbcTemplate namedJdbcTemplate; 我需要访问其他数据源。我将数据库属性添加到application.properties文件中。然后,我修改了Configure.j

我正在使用现有的Spring启动应用程序。application.properties文件指定一个“
spring.datasource
”数据库。通过Spring的魔力,以下NamedParameterJdbcTemplate在整个代码中使用了此数据源:

@Autowired
NamedParameterJdbcTemplate namedJdbcTemplate;
我需要访问其他数据源。我将数据库属性添加到application.properties文件中。然后,我修改了Configure.java文件,如下所示:

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

@Bean(name = "namedJdbcTemplate")
public NamedParameterJdbcTemplate namedJdbcTemplate(@Qualifier("dataSource") DataSource dataSource) {
    return new NamedParameterJdbcTemplate(dataSource);
}

@Bean(name = "dbiSupportDataSource")
@ConfigurationProperties(prefix = "spring.dbisupport")
public DataSource dbiSupportDataSource() {
    return DataSourceBuilder.create().build();
}
我将自动连接保留到
名称djdbctemplate
,并将自动连接添加到我的新数据源:

@Autowired
NamedParameterJdbcTemplate namedJdbcTemplate;

@Autowired
DataSource dbiSupportDataSource;
使用此代码,对新数据库源的SQL查询会导致如下错误:

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

@Bean(name = "namedJdbcTemplate")
public NamedParameterJdbcTemplate namedJdbcTemplate(@Qualifier("dataSource") DataSource dataSource) {
    return new NamedParameterJdbcTemplate(dataSource);
}

@Bean(name = "dbiSupportDataSource")
@ConfigurationProperties(prefix = "spring.dbisupport")
public DataSource dbiSupportDataSource() {
    return DataSourceBuilder.create().build();
}
错误的SQL语法[从
support.core
表中选择*

如果从Configure.java文件中注释掉原始数据源和
namedJdbcTemplate
,则相同的SQL查询会成功运行

我还将注意到,即使添加了新的数据源,对
namedJdbcTemplate
的SQL查询仍能成功运行


我在设置新数据源时是否做错了什么?是否需要将SQL查询更改为新的数据源?

在配置文件中为所有数据源定义模板后,SQL查询开始对这两个数据库工作。换句话说,我在Configuration.java中添加了以下内容:

@Bean(name = "dbiSupportJdbc")
public NamedParameterJdbcTemplate dbiSupportJdbc(
        @Qualifier("dbiSupportDataSource") DataSource dbiSupportDataSource) {
    return new NamedParameterJdbcTemplate(dbiSupportDataSource);
}
然后,我自动连接了两个模板,而不是混合模板和数据源:

@Autowired
NamedParameterJdbcTemplate namedJdbcTemplate;

@Autowired
NamedParameterJdbcTemplate dbiSupportJdbc;