Win7 64位配置JDBC-ODBC数据源,连接ACCESS数据库
今天我有一个Java的数据库作业:配置ODBC,连接ACCESS数据库,练习JDBC-ODBC方式的数据库编程。但是在配置ODBC数据源的时候出现了问题。如下是问题和解决方案:
(一)我的电脑是win7(64bit)操作系统,在创建ODBC数据源的时候,在“管理工具”中找不到“Microsoft AccessDriver (*.mdb)”驱动程序,如图1所示:
图1 控制面板的“管理工具”中没有Microsoft Access Driver (*.mdb)驱动
但是我在“C:\Windows\SysWOW64”路径下,打开odbc32.exe,却可以找到Access数据库的驱动程序,然后成功配置了Student数据源,如图2所示:
图2 odbc32.exe方式建立ACCESS数据源
最后,在Access 2010中打开创建在Java程序路径下的student.mdb数据库,就可以看到如图1所示的结果了。
(二)用eclipse编程连接数据库
在上面的配置中,我采用的是“JDK(32bit)版本”+“Office2010(32bit)版本”编译运行程序;这里涉及到运行环境的版本问题:
JDK(32bit)版本+Microsoft office2010(32bit)版本;
如果两者的版本不同,就会出现下面的问题:
图3 eclipse(JDK64bit)版本运行的结果
另外,由于Win7 (64bit)OS中,eclipse只能用JDK(64bit)版本。所以我选择配置了JDK(64bit)版本。
还有一种方法是:采用Office2010(64bit)+JDK(64bit)的方式,但是这种方式由于要重新安装Office2010,太麻烦了,就没采用。
下面是后来我重新安装Office2010(64bit)后,直接在控制面板的管理工具中找到Access数据库的驱动程序:
图4 OS与Office都是64bit情况下驱动界面正常
/**********************************************************************************************************************************************************************/
今天无意间看到这个程序,发现数据库没有了,于是重建。But,遇到了一个问题,还有一个发现:
1.提示没有合适的数据库驱动?
分析:jdbc-odbc桥接方式访问Access的数据库驱动是直接包含在jdk\jre\rt.jar中,而且这个jar包也在。可为什么会提示这个错误?经过排查,终于发现这个项目在eclipse中配置的jdk是另外一个版本的,而且和系统环境变量的jdk版本不符合。
解决:将本程序的jdk版本改为与环境变量JAVA_HOME一致的jdk版本即可!
2.在配置ODBC的Access数据源Student时,在“高级”选项中设置用户名,密码有什么作用?
分析:在java连接数据源的地方,没写用户名和密码,一样能够登录该Access数据库
总结:设置用户名,密码没啥用!(可想而知,安全性低)