Я видел эту строку в примере приложения для использования коммерческого драйвера JDBC:
Class.forName("name.of.a.jcdb.driver")
Возвращаемое значение не используется.
Для какой цели служит эта линия?
Я видел эту строку в примере приложения для использования коммерческого драйвера JDBC:
Class.forName("name.of.a.jcdb.driver")
Возвращаемое значение не используется.
Для какой цели служит эта линия?
Он выполняет статическую загрузку этого класса. Таким образом, все, что находится в блоке static { }
, будет работать.
Может быть, какой-то фрагмент кода поможет. Это из драйвера моста Sun JDBC-ODBC,
//--------------------------------------------------------------------
// Static method to be executed when the class is loaded.
//--------------------------------------------------------------------
static
{
JdbcOdbcTracer tracer1 = new JdbcOdbcTracer();
if (tracer1.isTracing ()) {
tracer1.trace ("JdbcOdbcDriver class loaded");
}
JdbcOdbcDriver driver = new JdbcOdbcDriver ();
// Attempt to register the driver
try {
DriverManager.registerDriver (driver);
}
catch (SQLException ex) {
if (tracer1.isTracing ()) {
tracer1.trace ("Unable to register driver");
}
}
}
вызов DriverManager.registerDriver()
в статическом блоке выполняется всякий раз, когда драйвер загружается через Class.forName()
.
Раньше это был единственный способ зарегистрировать водителя. JDBC 4.0 представил новый механизм регистрации службы, поэтому вам больше не нужно делать это с новыми драйверами, совместимыми с JDBC 4.0.
В вашем конкретном примере класс драйвера JDBC содержит статический инициализатор, который регистрирует драйвер как ДрайверМенеджер.
Это используется, в частности, для драйверов JDBC. Класс драйвера JDBC имеет блок статического инициализатора, который регистрирует класс в JDBC DriverManager, чтобы DriverManager знал о драйвере, когда вы позже откроете соединение с базой данных.
В более новой версии JDBC (я думаю, JDBC 3.0) в этом больше нет необходимости, DriverManager использует другой механизм для поиска драйверов JDBC.
редактировать — Эта страница подробно объясняет, как работает загрузка драйвера JDBC и как драйвер регистрируется в DriverManager (старым способом).
В случае драйверов JDBC статический инициализатор запрошенного класса зарегистрирует драйвер в DriverManager, чтобы работало подключение для URL-адреса конкретного драйвера.
вручную загрузить класс в текущем загрузчике классов