Java 读取不带OBDC驱动程序的MS Access数据库
我在尝试更新一些代码时遇到了一个非常恼人的问题。所讨论的代码从本地MS access文件(*.mdb)读取一些(实际上是很多)信息,然后对这些数据执行一些操作(只是简单的东西)。请记住,我只需要阅读数据库,仅此而已 问题是,我正在尝试将此程序部署到x64操作系统(主要是win7)中,而我无法访问32位ODBC驱动程序 这是访问db的代码部分,变量“path”是一个字符串,包含mdb文件的绝对路径,正如我所说的,这个文件是本地的Java 读取不带OBDC驱动程序的MS Access数据库,java,database,ms-access,64-bit,Java,Database,Ms Access,64 Bit,我在尝试更新一些代码时遇到了一个非常恼人的问题。所讨论的代码从本地MS access文件(*.mdb)读取一些(实际上是很多)信息,然后对这些数据执行一些操作(只是简单的东西)。请记住,我只需要阅读数据库,仅此而已 问题是,我正在尝试将此程序部署到x64操作系统(主要是win7)中,而我无法访问32位ODBC驱动程序 这是访问db的代码部分,变量“path”是一个字符串,包含mdb文件的绝对路径,正如我所说的,这个文件是本地的 public void openConection() {
public void openConection()
{
try
{
Properties props = new Properties();
props.put ("charSet", "ISO-8859-1");
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String dbURL = "jdbc:odbc:Driver={Microsoft AccessDriver (*.mdb)};DBQ=";
dbURL += this.path + ";DriverID=22;READONLY=false)";
this.connection = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft AccessDriver (*.mdb)};DBQ=" + this.path, props);
this.statement = this.connection.createStatement();
System.out.println("Success");
}catch(Exception e)
{
System.out.println("Error :" + e);
}
}
这会引发以下错误:
[Microsoft][ODBC驱动程序管理器]未找到数据源名称,也未指定默认驱动程序
问题(据我所知)在于这段代码:
("jdbc:odbc:Driver={Microsoft AccessDriver (*.mdb)};DBQ=" + this.path, props
如果我是正确的,这将尝试将java jdbc连接到MS Access ODBC,后者是一个32位驱动程序,因此程序无法访问。我试着用谷歌搜索我的问题,但没有找到任何有用的东西,我找到了一个64位的MS Access驱动程序,但它需要卸载32位版本的Office
此外,我希望避免为此创建DSN,因为该程序必须提供给许多不知道如何做到这一点的人
谢谢
Zegpi您可以尝试使用javaapi直接读取文件。外面有好几个图书馆
你可以试试。它是免费的。怎么样?只需使用32位Java虚拟机运行您的程序即可。这将能够访问32位ODBC驱动程序。Remou,我不能使用这些驱动程序,因为它们要求我卸载32位版本的office,我不能这样做。一匹没有名字的马,我找不到让netbeans以32位运行的方法,我甚至用32位版本的JDK重新安装了所有东西,但都没有用。这正是我想要的,我会尽快尝试。非常感谢。我会让你知道(并接受答案),只要我知道它的工作。我终于有时间测试它,它的工作。非常感谢。