1.场景描述
一个用户登录网站,网站有3个角色,点击登录之后谈成这3个角色,点击角色,决定进入哪个数据库。
2. 配置文件
package cn.enn.ennem;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.jdbc.core.JdbcTemplate;
import tk.mybatis.spring.annotation.MapperScan;
import javax.sql.DataSource;
@Configuration
public class DataSourceConfig {
@Bean(name = "cgDataSource")
@Qualifier("cgDataSource")
@ConfigurationProperties(prefix="spring.datasource.cg")
public DataSource cgDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "cgJdbcTemplate")
public JdbcTemplate cgJdbcTemplate( @Qualifier("cgDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
@Bean(name = "cyDataSource")
@Qualifier("cyDataSource")
@ConfigurationProperties(prefix="spring.datasource.cy")
public DataSource cyDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "cyJdbcTemplate")
public JdbcTemplate cyJdbcTemplate( @Qualifier("cyDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
@Bean(name = "dgDataSource")
@Qualifier("dgDataSource")
@ConfigurationProperties(prefix="spring.datasource.dg")
public DataSource dgDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "dgJdbcTemplate")
public JdbcTemplate dgJdbcTemplate( @Qualifier("dgDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
@Primary
@Bean(name = "dataSource")
@Qualifier("dataSource")
@ConfigurationProperties(prefix="spring.datasource")
public DataSource dataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "jdbcTemplate")
public JdbcTemplate jdbcTemplate( @Qualifier("dataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
}
3.使用
@Autowired
@Qualifier("cgJdbcTemplate")
protected JdbcTemplate cgJdbcTemplate;
@Autowired
@Qualifier("cyJdbcTemplate")
protected JdbcTemplate cyJdbcTemplate;
@Autowired
@Qualifier("dgJdbcTemplate")
protected JdbcTemplate dgJdbcTemplate;
String sql = "select username from sys_user where username = '"+username+"' and is_deleted = 0";
List cgList = cgJdbcTemplate.queryForList(sql);
List cyList = cyJdbcTemplate.queryForList(sql);
List dgList = dgJdbcTemplate.queryForList(sql);