出现这个异常的原因在于从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