подключиться к БД с java без внешнего jar - есть такая вещь? - PullRequest
0 голосов
/ 06 февраля 2012

Я подключаюсь к базе данных с помощью Java с помощью следующего кода:

 Class.forName(some driver name);

сейчас, чтобы запустить его, я должен включить соответствующий JAR-файл в путь сборки.У меня вопрос, есть ли драйвер (может быть, встроенный в SDK / JRE), который не требует включения JAR?

спасибо

Ответы [ 3 ]

4 голосов
/ 06 февраля 2012

Единственным драйвером JDBC, встроенным в Oracle Java 6 JRE, является мост JDBC-ODBC .Однако его использование не рекомендуется.

Для любой другой СУБД вам необходим соответствующий JAR-драйвер JDBC.

0 голосов
/ 06 февраля 2012

Возможное решение: включите jar соединителя в свой jar, распакуйте его где-нибудь во время выполнения и используйте URLClassLoader для загрузки драйвера.

Пример полностью абстрактного вызова драйвера MSSQL:

URLClassLoader cl = ...; // create and initialize URLClassLoader
Class c = cl.loadClass("com.microsoft.sqlserver.jdbc.SQLServerDataSource").newInstance().getClass();
c.getMethod("setUser", String.class).invoke(o, connectionParameters.user);
c.getMethod("setPassword", String.class).invoke(o, connectionParameters.password);
c.getMethod("setServerName", String.class).invoke(o, connectionParameters.serverName);
c.getMethod("setDatabaseName", String.class).invoke(o, connectionParameters.databaseName);
return (Connection) c.getMethod("getConnection").invoke(o);

Он использует специфичные для MS-драйвера методы, но не требует, чтобы драйвер находился на вашем пути к классам.

0 голосов
/ 06 февраля 2012

Невозможно соединиться без какого-либо драйвера, потому что драйвер работает как мост для соединения нашего приложения с серверами баз данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...