在不同案例下使用不同数据源的DAO,可以通过使用多个数据源配置和多个DAO实现类来解决。以下是一个示例:
首先,创建一个名为DataSourceConfig的类,用于配置不同的数据源:
@Configuration
public class DataSourceConfig {
@Bean
@ConfigurationProperties(prefix = "datasource1")
public DataSource dataSource1() {
return DataSourceBuilder.create().build();
}
@Bean
@ConfigurationProperties(prefix = "datasource2")
public DataSource dataSource2() {
return DataSourceBuilder.create().build();
}
}
上述代码中,我们使用@ConfigurationProperties
从配置文件中读取不同数据源的配置信息,并将其创建为一个DataSource bean。
接下来,创建两个不同数据源的配置文件(例如,application.yml或application.properties),并为每个数据源提供相应的配置信息:
# 数据源1的配置
datasource1:
url: jdbc:mysql://localhost:3306/db1
username: user1
password: password1
# 数据源2的配置
datasource2:
url: jdbc:mysql://localhost:3306/db2
username: user2
password: password2
然后,创建两个不同数据源的DAO实现类,分别使用不同的数据源:
@Repository
public class UserDaoImpl1 implements UserDao {
@Autowired
@Qualifier("dataSource1")
private DataSource dataSource;
// 实现DAO接口的方法...
}
@Repository
public class UserDaoImpl2 implements UserDao {
@Autowired
@Qualifier("dataSource2")
private DataSource dataSource;
// 实现DAO接口的方法...
}
上述代码中,我们使用@Qualifier
注解指定要使用的数据源,然后通过@Autowired
将其注入到DAO实现类中。
最后,创建一个DAO接口,定义共享的方法:
public interface UserDao {
// 共享的方法...
}
这样,我们就可以根据不同的案例选择不同的DAO实现类来使用不同的数据源了。
需要注意的是,以上示例使用了Spring的依赖注入和配置注解,因此需要确保项目中已经正确配置了Spring框架。