在我们的项目中涉及到Oracle,Mysql数据库切换;
数据放在了Oracle上,而配置和权限管理放在了Mysql上;所以经常要在两者之间切换。
数据源切换总共有三种方法:
1 在任何地方切换。
例如我们的项目:DBContext.changeDB(DBName.IMS.getKey()) //切换Oracle
DBContext.changeDB(DBName.DBVS.getKey()) //切换Mysql
2 在方法上加注解。
例如:@DBAspect("dbvs") //切换Mysql
@DBAspect("ims") //切换Oracle
3 在dao层之间分开,一个mapper文件专门去访问Mysql,一个专门访问Oracle
接下来我们主要将第一种:在任何地方切换(我们项目代码无法拷贝,纯手敲)
类DBContext
public class DBContext {
private static ThreadLocal<String> dbName = new ThreadLocal<>();
public static String getTargetDataSource(){
return dbName.get();
}
public static void changeDB(String name){
dbName.set(name);