Я видел эту строку в примере приложения для использования коммерческого драйвера 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 версиями драйверов.
В вашем конкретном примере класс драйвера JDBC содержит статический intializer, который регистрирует драйвер, DriverManager.
Это используется, в частности, для драйверов JDBC. Класс драйвера JDBC имеет статический блок инициализатора, который регистрирует класс с помощью DriverManager JDBC, так что DriverManager знает о драйвере, когда вы позже открываете соединение с базой данных.
В более новой версии JDBC (я думаю, JDBC 3.0) это больше не нужно, другой драйвер DriverManager используется для поиска драйверов JDBC.
edit - На этой странице подробно объясняется, как загружается драйвер JDBC и как драйвер регистрируется с помощью DriverManager (старый способ).
В случае драйверов JDBC статический инициализатор запрошенного класса будет регистрировать драйвер с JDBC DriverManager, чтобы получить соединение для URL-адреса, зависящего от драйвера.
для запуска класса нагрузки в текущем загрузчике классов