Некоторые JAR-файлы JDBC(например, драйвер Derby, входящий в состав Java SE 6) автоматически регистрируют класс драйвера. JAR-файл может автоматически зарегистрировать класс драйвера, если он содержит файл:
1 |
META-INF/services/java.sql.Driver. |
Чтобы проверить это, достаточно просто распаковать JAR-файлы драйвера.
Механизм регистрации использует малоизвестную часть спецификации JAR. Советую ознакомится со следующим материалом: http://docs.oracle.com/javase/6/docs/technotes/guides/jar/jar.html
Кстати, для драйвера совместимого с JDBC4, автоматическая регистрация является обязательной.
Если JAR-файл драйвера не поддерживает автоматическую регистрацию, потребуется узнать имя классов драйвера JDBC, используемого вашим поставщиком. Обычными именами драйверов являются:
1 2 |
org.apache.derby.jdbc.ClientDriver org.postgresql.Driver |
Существуют два способа регистрации драйвера посредством DriverManager. Один способ заключается в том, чтобы загрузить класс драйвера в вашу программу на Java.
Например:
1 |
Class.forName("org.postgresql.Driver"); // загружает класс драйвера |
Этот оператор загружает класс драйвера, выполняя тем самым статический инициализатор, который осуществляет регистрацию драйвера.
Другой способ заключается в том, чтобы задать свойство jdbc.drivers. Вы можете определить свойство посредством аргумента командной строки, как показано ниже:
1 |
java -Djdbc.drivers=org.postgresql.Driver Имя_программы |
Или же ваше приложение может установить системное свойство посредством следующего вызова:
1 |
System.setProperty("jdbc.drivers", "org.postgresql.Driver"); |
При необходимости можно указать несколько разных драйверов, разделив их двоеточием:
1 |
org.postgresql.Driver:org.apache.derby.jdbc.ClientDriver |
Вот и наглядный пример архитектуры JDBC Java: