No suitable driver found for jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};

来源:互联网 发布:如何注册手机淘宝账号 编辑:程序博客网 时间:2024/05/16 00:39
解决方法
控制面板-管理工具-数据源(ODBC)”,打开“ODBC数据源管理器”窗口,然后“添加”,打开“创建新数据源”的窗口,最后选择Microsoft Access Driver(*.mdb)选项,往后等等。。。 不过我打开“ODBC数据源管理器”窗口,添加的时候却发现窗口中只有一个“SQL Server”的驱动程序,没有access的!
 
 
原因可能是由于系统是win7-64位的问题:打开目录:“C:\Windows\SysWOW64”,双击该目录下的“odbcad32.exe”文件,就进去ODBC数据源管理界面了,现在这个界面中就有access的驱动了!
 
 

出现这个异常的原因在于从JDK1.8开始,Oracle删除了jdbc-odbc桥,如果你要使用jdbc-odbc桥,那么请下载jdk1.7或者更低版本

近期笔者经常收到百度知道的消息,都是关于这个的一些评论,所以发一篇再博文说明下。

官网对jdbc-odbc驱动的说明:http://docs.oracle.com/javase/7/docs/technotes/guides/jdbc/bridge.html

JDBC-ODBC Bridge

The JDBC-ODBC Bridge allows applications written in the Java programming language to use the JDBC API with many existing ODBC drivers. The Bridge is itself a driver based on JDBC technology ("JDBC driver") that is defined in the classsun.jdbc.odbc.JdbcOdbcDriver. The Bridge defines the JDBC sub-protocol odbc.

Status of the JDBC-ODBC Bridge

The JDBC-ODBC Bridge should be considered a transitional solution; it will be removed in JDK 8. In addition, Oracle does not support the JDBC-ODBC Bridge. Oracle recommends that you use JDBC drivers provided by the vendor of your database instead of the JDBC-ODBC Bridge.

Why use ODBC at all?

The ideal is "Pure Java": no native code, no platform dependentfeatures. But you may need to begin your development effort rightaway, without waiting for your DBMS to offer a Java-only JDBCdriver. Partly native drivers, such as the JDBC-ODBC Bridge, letyou create programs that easily adapt to Pure Java drivers as theybecome available.

早期的时候java刚诞生没多久,jdbc还不是很成熟,为了保持对微软的驱动兼容使用了jdbc-odbc最为过渡,现在,jdbc已经可以独挡一面了,所以oracle/sun删除了这个驱动,这很正常。但是由于大多数教材的编者并没有与时俱进,操作数据库的第一个例子在jdk1.7的时候仍然是jdbc-odbc......,大部分编者认为配置微软的东西比配置mysql简单,实际上对初学者来说基本没有什么区别。

Oracle/sun还说了,以sun开头的包以后有废弃的风险,如果项目以后要更新的话,建议还是尽量避开这些包


--------------------------------------------------------------------------------jdk-----------------------------------------------------------------------

我电脑上安装了jdk8和jdk7。

我环境变量设置的jdk7,但是在CMD中输入java -version 显示的一直是jdk8


删除:

c:/windows/system32/java.exe
c:/windows/system32/javaw.exe
c:/windows/system32/javaws.exe


直接删除后,在CMD中就正常了


---------------------------------java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序-------------------------

在Win7 64位系统下,使用Java+Access数据库编程,用Java连数据库时,出现错误提示,如下:

Java java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序

 

网络上有很多类似错误的解决办法,其中之一就是:

url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=D:\\abc.mdb";
注意:Driver 和 (*.mdb) 之间要有空格,而且=左右不能有空格,正确写法为:

url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=D:\\abc.mdb";

 

当然,此次的问题不是这个原因,原因是,系统默认下只安装了32位的Access驱动,在64位下不支持,解决办法是,下载64位的Access数据库引擎驱动,下载地址:
http://www.microsoft.com/zh-cn/download/details.aspx?id=13255

http://download.microsoft.com/download/E/4/2/E4220252-5FAE-4F0A-B1B9-0B48B5FBCCF9/AccessDatabaseEngine_X64.exe


---补充一点,当你卸载完office 然后装了上述的access64位驱动,接着可以再装你之前的office32  可以装成功。


-----关于access odbc配置

http://www.jb51.net/article/37344.htm




0 0