我與現有的春季啓動應用程序的工作。在application.properties文件指定一個「spring.datasource
」數據庫。通過彈簧的魔法,使用此數據源通過以下是NamedParameterJdbcTemplate整個代碼:多數據源和自動裝配Autowired JDBC模板引起不良的SQL語法在春季啓動
@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();
}
我不停的自動連線到namedJdbcTemplate
並添加自動連線到我的新的數據源:
@Autowired
NamedParameterJdbcTemplate namedJdbcTemplate;
@Autowired
DataSource dbiSupportDataSource;
有了這個代碼, SQL查詢到新的數據庫源導致的錯誤是這樣的:
壞SQL語法[SELECT * FROM
support.core
。表]
如果我從Configure.java文件註釋掉原始數據源和namedJdbcTemplate
,則同一個SQL查詢可以成功運行。
我還會注意到,即使添加新的數據源,對namedJdbcTemplate
的SQL查詢仍會繼續成功運行。
設置新數據源時我做錯了嗎?我需要我的SQL查詢更改爲新的數據源?