一次查询两个数据库的方法就是多线程 开启两次连接
也可以直接使用JDBC连接的方式直接连接数据库
至于如何配置两个数据源 去看别的教程 = =
@Override
@DataSource(value = DataSourceNames.TWO)
public Map<String, Object> getSandardByReportId(Integer id) {
ExecutorService executor = Executors.newSingleThreadExecutor();
FutureTask<Integer> task = new FutureTask<Integer>(new Callable<Integer>() {
@Override
public Integer call() throws Exception {
return getStandardIdBy(id);
}
});
executor.submit(task);
// new Thread() {
// @Override
// public void run() {
// Integer standardId = getStandardIdBy(id);
// System.out.println("查询成功: " +standardId +"没有查到东西吗");
// System.out.println(standardId);
// }
// }.start();
Map<String, Object> map = null;
try {
map = getSandardMapById(task.get());
return map;
} catch (InterruptedException e) {
e.printStackTrace();
return null;
} catch (ExecutionException e) {
e.printStackTrace();
return null;
}
}
@DataSource(value = DataSourceNames.TWO)
public Map<String, Object> getSandardMapById(Integer id) {
Map<String, Object> map = craftExtrCheckStandardMapper.getStandardById(id);
return map;
}
@DataSource(value = DataSourceNames.ONE)
public Integer getStandardIdBy(Integer reportId) {
Integer checkIdByReportId = extrProductOrderMapper.getCheckIdByReportId(reportId);
return checkIdByReportId;
}