当数据库中采用了分库的策略(即数据库中有多个数据库),Mybatis查询时,一定要切换数据库,否则就会报Cannot determine target DataSource for lookup key [null] 错误,即找不到对应的数据库
附上切换数据库的类
public class DBContextHolder {
private static final ThreadLocal<String> contextHolder = new ThreadLocal<String>();
public static void setDBType(String dbType) {
contextHolder.set(dbType);
}
public static String getDBType() {
return contextHolder.get();
}
public static void clearDBType() {
contextHolder.remove();
}
}
使用时,DBContextHolder.setDBType(target_db);
本文介绍当数据库采用分库策略时,MyBatis查询必须切换数据库的原因及解决方法。通过自定义DBContextHolder类实现数据库类型的动态切换,避免查询时出现无法确定目标数据源的问题。
606

被折叠的 条评论
为什么被折叠?



