Да, это масштабируется. Всегда есть лучшие подходы, но вы должны быть уверены, что самый простой из них соответствует вашим потребностям. Если этого не произойдет, тогда ищите лучшие подходы.
Альтернативный подход совсем не должен быть сложным.
// initialize an executor service
ExecutorService executor = Executors.newCachedThreadPool();
// externalize the access to every database in a method declared in a class
// that implements Runnable
class Oracle implements Runnable {
@Override
public void run() {
// load the driver
// prepare the statement
// get the connection
// execute the statement and get the results
// save the results to a file
}
}
// execute every db access withing the executor
executor.execute(new Oracle());
executor.execute(new SqlServer());
executor.execute(new MySql());