我目前正在制作一个小型Java应用程序来对访问数据库进行一些CRUD。在tafe他们运行32位机器,所以它在那里工作,但在家里我运行64位所以我做了一些研究,并发现了SysWOW64中的odbcad32.exe。所以我在那里创建了数据源,J Creator仍然有一个错误,指出指定的DSN包含驱动程序和应用程序之间的体系结构不匹配。所以我现在认为即使dsn是32位版本,J Creator仍然在寻找64位版本。
这是ap加载的.properties文件。
driver = sun.jdbc.odbc.JdbcOdbcDriver
url = jdbc:odbc:booksDSN_32;database=booksdb.mdb
username = user
password = password
connections=1
我想也许网址需要不同所以我把它改成了
url = jdbc:odbcad32:booksDSN_32; database = booksdb.mdb
没有运气。我确定它在这里缺少一些小东西
感谢您提供任何帮助!
答案 0 :(得分:0)
您使用的是32位还是64位Java?
换句话说,在64位计算机上,Java是从C:\Program Files\Java
还是C:\Program Files (x86)\Java
下运行的?
过去我在64位计算机上使用带有Java的32位DLL时遇到了一些问题。两种情况下的修复都是使用32位Java。
答案 1 :(得分:0)
又高又短---
运行相同进程空间的所有可执行文件,dll等都必须具有相同的位数(所有32位或全部64位)
Sun JDBC to ODBC Bridge将有一个C部分(ODBC位)可能为32位..
因此,您将需要使用32位Java运行时环境运行您的Java程序 - 它加载Bridge的32位C部分 - 在注册表中查找32位ODBC数据源 - 加载32位ODBC驱动程序......
我怀疑你所拥有的是 - 64位Java无法加载32位C桥的一部分......
还有其他JDBC到ODBC桥可用,例如来自Multi-tier JDBC to ODBC Bridge的OpenLink Software,它是使用客户端/服务器架构构建的。
瘦JDBC客户端连接到ODBC桥服务器端(或与客户端相同的机器) - 在ODBC驱动程序存在某种位数(例如,仅32位)时非常有用...