Я пытаюсь получить точное представление о том, как работает механизм поставщика услуг Java, чтобы найти подходящий драйвер JDBC. Вот что я до сих пор:
Так как Class.ForName
больше не используется для явной загрузки JDBC Driver
, Java должен знать, какой драйвер типа он нужен из строки url базы данных, которая передается методу getConnection
. Например, URL-адрес базы данных для подключения к базе данных оракула будет примерно таким:
public static final String DB_URL = "jdbc:oracle:[email protected]//localhost:1521/ORCL";
Затем DriverManager
будет искать реализацию драйвера oracle в банках, указанных в пути класса проектов. Он будет искать файлы конфигурации драйверов (в которых должно быть имя фактических классов драйверов) в каталоге META-INF/Services
каждой банки. Class Loader
будет загружать самое первое совпадение, которое он находит, и игнорировать остальные.
Является ли вышеуказанная работа точной? Пожалуйста, дайте мне знать Если я пропустил что-то или что-то не так.