Насколько я понимаю, загрузка классов полезна для загрузки класса во время выполнения с его именем класса.Какова цель класса Class.forName («MY_JDBC_DRIVER»)?
Однако при использовании JDBC в нашем проекте мы знаем, какой драйвер мы собираемся использовать, и в основном строка диспетчера драйверов жестко закодирована.
Мой вопрос: Почему мы загружаем драйвер, используя Class.forName("JDBC_DRIVER")
здесь?
Почему мы не можем добавить драйвер в путь класса? так как мы знаем, какую банку драйверов мы будем использовать.
Я считаю, что Class.forName(JDBC_DRIVER)
загрузит драйвер в DriverManager
. Это единственная причина?
Edit 1:
В DriverManager
API doc говорится, что
В рамках своей (DriverManager) инициализации класса DriverManager будет пытаться загрузить классы драйверов ссылки в "jdbc.drivers" системное свойство.
Приложениям не требуется явно загружать драйверы JDBC с использованием
Class.forName()
. Существующие программы, которые в настоящее время загружают драйверы JDBC с использованиемClass.forName()
, будут продолжать работать без изменений.
Тогда, когда я использую кроме водителя оракула; мне нужно изменить строку имени драйвера в системном свойстве?
Группа, спасибо. Теперь я понял, что class.forName() полезен для загрузки класса по сравнению с другими механизмами, такими как вызов его статического метода или создание экземпляра этого класса. Таким образом, мы можем обеспечить выполнение некоторых функций только один раз, используя статический блок во время загрузки. –