我正在使用MS Access作为Web应用程序的后端
由于我使用的是64位操作系统,因此我更新了ODBC(数据源)中sysWOW64
的路径...但我仍然收到错误:
org.apache.jasper.JasperException: javax.servlet.ServletException:
java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
我使用的代码是:
String database="G:\\databs.mdb";
String url="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=" + database+";DriverID=22;READONLY=true";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection(url,"","");
Statement stmt=con.createStatement();
答案 0 :(得分:0)
您的问题显示您已经了解sysWOW64
子系统,因此请记住,在64位Windows计算机上有两个“ODBC管理员”应用程序...
C:\Windows\System32\odbcad32.exe
用于64位应用程序,
C:\Windows\SysWOW64\odbcad32.exe
...(是的,命名确实有点落后),在64位计算机上,您可以从Control Panel > Administrative Tools
看到的是64位计算机。
您在其中创建的系统DSN将无法在另一个中显示。为特定应用程序配置DSN时,您必须“注意自己的位置”。 :)
答案 1 :(得分:0)
问题不在于机器是64位,而是你的JVM 64位。如果是,请使用64位管理员,如果不使用32位管理员(如您所知,它们都在哪里)。