Вы должны разделить файл jar драйвера и фактическое имя драйвера JDBC для конкретного поставщика.
Я бы очень рекомендовал не включать jar-драйверы jdbc в ваш собственный jar.
Просто у них к пути во время выполнения.
Точно так же вы можете получить имя диспетчера драйверов JDBC из системных свойств во время выполнения или даже из файла конфигурации.
Так работает приложение, как это:
java -jar myapp.jar -cp sqlserver.jar -DdriverManager=com.microsoft.sqlserver.jdbc.SQLServerDriver -DdbUrl=jdbc:some:url
и в вашем приложении сделайте что-то вроде этого (я опускаю обработку исключений):
Class.forName(System.getProperty("driverManager"));
Connection conn = DriverManager.getConnection(System.getProperty("dbUrl"))
;
Таким образом, вы можете изменить драйверы, просто добавив соответствующий файл jar в classpath и изменив свойства driverManager и dbUrl. Таким образом, вам не нужно перекомпилировать для поддержки новых драйверов.
Это самое простое решение, которое я могу придумать.