Kar*_*hik 34 java jdbc-odbc java-8
从Java 8开始,JDK将不再包含JDBC-ODBC Bridge.
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // classNotFoundException is thrown
Run Code Online (Sandbox Code Playgroud)
有没有其他解决方案连接JDBC-ODBC Bridge?
frh*_*ack 25
我们仍然可以在java 8中使用JDBC-ODBC Bridge,只需遵循这个简单的配方:
复制sun\jdbc和sun\security\action文件夹,保留文件夹结构.即,你应该有如下文件夹结构:
Sun --> Security --> Action
--> JDBC
Run Code Online (Sandbox Code Playgroud)打开CMD窗口.转到Sun文件夹的父文件夹.运行命令:jar -cvf jdbc.jar sun
lib文件夹.如果这不起作用,请尝试该lib\ext文件夹.Rob*_*ier 15
好吧,在我看来,Oracle员工的博客文章说明了一切:
我建议您使用数据库供应商提供的JDBC驱动程序或商业JDBC驱动程序而不是JDBC-ODBC Bridge.
您使用JDBC-ODBC Bridge的应用程序是什么类型的?
Tal*_*Ted 11
有没有其他解决方案连接JDBC-ODBC Bridge?
太阳和甲骨文的官方立场一直是 -
[JVM-bundled] JDBC-ODBC Bridge应被视为过渡解决方案[...] Oracle不支持JDBC-ODBC Bridge.
但是,我的雇主OpenLink Software自JVM 1.0以来在JDBC和ODBC之间生成了企业级商用Type 1桥接器,并且这些桥接器与当前的JVM 1.8完全兼容.你可以在这里了解更多 -
小智 10
我找到了一个合理的解决方案,允许使用现有代码,只更改打开数据库连接逻辑.
UCanAccess是一个开源的JDBC驱动程序.
http://ucanaccess.sourceforge.net/site.html
这有两个依赖项,其中一个依赖项有两个依赖项.
jackcess-2.0.0.jar或更高版本
commons-lang-2.4.jar
commons-logging-1.0.4.jar
Run Code Online (Sandbox Code Playgroud)
的hsqldb.jar(2.2.5)
这些都是开源的.进行互联网搜索,下载,必要时解压缩,并将所有四个罐子和UCanAccess的罐子放在项目的目录中(例如JDBC-to-MSAccess).如果使用Ecplise,请从菜单"Project/Properties/Java Compiler/Libraries/Add External JARs"中选择添加到构建路径,然后选择所有五个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 );
Run Code Online (Sandbox Code Playgroud)