Начиная с Java 8, JDBC-ODBC Bridge больше не будет включен в JDK.
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // classNotFoundException is thrown
Есть ли другое решение, соединяющее JDBC-ODBC Bridge?
Начиная с Java 8, JDBC-ODBC Bridge больше не будет включен в JDK.
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // classNotFoundException is thrown
Есть ли другое решение, соединяющее JDBC-ODBC Bridge?
Хорошо, на мой взгляд эта запись в блоге сотрудником Oracle говорит все:
Я бы рекомендовал использовать драйвер JDBC, предоставленный поставщиком вашей базы данных или коммерческим драйвером JDBC вместо моста JDBC-ODBC.
Какое приложение использует мост JDBC-ODBC для?
Мы все еще можем использовать JDBC-ODBC Bridge в java 8, просто следуйте этому простому рецепту:
Скопируйте папки sun\jdbc и sun\security\action, сохраните структуру папок. то есть вы должны иметь структуру папок, как показано ниже:
Sun --> Security --> Action
--> JDBC
Откройте окно CMD. Перейдите в родительскую папку папки Sun. Выполните команду: jar -cvf jdbc.jar sun
Вышеупомянутая команда создаст файл с именем jdbc.jar
lib
. Если это не работает, попробуйте папку lib\ext
.Есть ли другое решение, соединяющее JDBC-ODBC Bridge?
Sun и Oracle официальные позиции уже давно -
[JVM-bundled] JDBC-ODBC Bridge следует рассматривать как переходное решение [...] Oracle не поддерживает мост JDBC-ODBC.
Однако мой работодатель OpenLink Software выпустил коммерческие мосты Commercial Type 1 Bridges между JDBC и ODBC с JVM 1.0, и они полностью совместимы с текущим JVM 1.8. Вы можете узнать больше здесь -
Я нашел разумное решение, которое позволяет использовать существующий код с изменением только для открытия логики подключения к базе данных.
UCanAccess - это драйвер JDBC с открытым исходным кодом.
http://ucanaccess.sourceforge.net/site.html
Это имеет две зависимости, одна из которых имеет еще две зависимости.
jackcess-2.0.0.jar или более поздняя версия
commons-lang-2.4.jar
commons-logging-1.0.4.jar
hsqldb.jar(2.2.5)
Все это с открытым исходным кодом. Выполняйте поиск в Интернете, загружайте, разархивируйте, если необходимо, и поместите все четыре баночки плюс один для UCanAccess в каталог вашего проекта (например, JDBC-to-MSAccess). Если вы используете Ecplise, добавьте в свой путь сборки, выбрав в меню "Project/Properties/Java Compiler/Libraries/Add External JAR" и выберите все пять файлов jar.
Логика подключения очень проста:
String strConnectionString = "";
Connection conAdministrator = null;
// Register driver
Class.forName( "net.ucanaccess.jdbc.UcanaccessDriver" );
// System.getProperty( "user.dir" ) => Current working directory from where application was started
strConnectionString = "jdbc:ucanaccess://" + System.getProperty( "user.dir" ) + "\\Your-database-name.<mdb or accdb>";
// Open a connection to the database
conAdministrator = DriverManager.getConnection( strConnectionString );
Роберт Петермейер хорошо показал, что H2-диски поддерживают ODBC через драйвер PostgreSQL, и вы можете установить драйвер соответственно по ссылке из Stackoverflow Настройка PostgreSQL ODBC в Windows
Я знаю, что на этот вопрос ответили долгое время назад, но я хотел выделить синтаксис DataDirect. В этом блоге https://www.progress.com/blogs/jdbc-odbc-bridge-replacement-yields-performance-boost автор рассказывает о том, как их мост может повысить производительность на 310%. Пробную версию моста можно скачать здесь: https://www.progress.com/jdbc/sequelink