无法将我的ms access与java连接

无法将我的ms access与java连接,java,ms-access,odbc,Java,Ms Access,Odbc,我尝试了多种方法将ms access 2010中的数据库与java连接起来,但都不起作用 通过将属性中的路径更改为%windir%\SysWOW64\odbcad32.exe,我将ODBC驱动程序路径从64位设置为32位 我在这个网站上下载了用于AccessDatabaseEngine_x64.exe的Microsoft Access数据库引擎2010可再发行版 我研究了网站的大部分内容,他们告诉我们下载数据库引擎2010。 但是,我仍然收到此错误: [Microsoft][ODBC驱动程序管理

我尝试了多种方法将ms access 2010中的数据库与java连接起来,但都不起作用

  • 通过将属性中的路径更改为
    %windir%\SysWOW64\odbcad32.exe
    ,我将ODBC驱动程序路径从64位设置为32位

  • 我在这个网站上下载了用于AccessDatabaseEngine_x64.exe的Microsoft Access数据库引擎2010可再发行版

  • 我研究了网站的大部分内容,他们告诉我们下载数据库引擎2010。 但是,我仍然收到此错误:

    [Microsoft][ODBC驱动程序管理器]指定的DSN包含驱动程序和应用程序之间的体系结构不匹配

    有人可以发布一个逐步的指南来解决我的问题吗?任何帮助都将不胜感激

    当前源代码

    private Connection con; 
    public void setUp(String dsn) {
        try { 
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        } catch (Exception e) { 
            System.out.println("Load driver error"); 
        } try { 
            String s = "jdbc:odbc:" + dsn; 
            con = DriverManager.getConnection(s, "", ""); 
        } catch (Exception e) {
            e.printStackTrace(); 
        } 
    } 
    
    public ResultSet readRequest(String dbQuery) { 
        ResultSet rs = null; 
        try { 
            Statement stmt = con.createStatement(); 
            rs = stmt.executeQuery(dbQuery); 
        } catch (Exception e) { 
            e.printStackTrace(); 
        } 
        return rs; 
    }
    

    连接64位JVM和64位MS Access与64位有点不同。这是一个和你经历过同样痛苦的人,以及如何解决这个问题

    基本上,如果您使用64位库,您需要稍微更改连接字符串。使用以下命令:

    String url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ="+fileName;
    con = DriverManager.getConnection(url,"","");
    
    其中filename是access文件的完整路径字符串,而不是:

    String s = "jdbc:odbc:" + dsn; 
    con = DriverManager.getConnection(s, "", "");
    

    你能给我们看看你的java代码吗;public void setUp(String dsn){try{Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);}catch(异常e){System.out.println(“加载驱动程序错误”);}try{String s=“jdbc:odbc:”+dsn;con=DriverManager.getConnection(“,”);}catch(异常e){e.printStackTrace();}公共结果集readRequest(字符串dbQuery){ResultSet rs=null;try{Statement stmt=con.createStatement();rs=stmt.executeQuery(dbQuery);}catch(异常e){e.printStackTrace();}返回rs;}通常,您会编辑原始问题以显示源代码。我会将其放入其中,但您可能需要修复格式。您的JDBC连接位看起来很可靠,因此问题可能与ODBC的设置有关。不幸的是,我不是ODBC和MS Access方面的专家……但这是我的代码。private connection con;public void setup(String dsn){try{Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);}catch(异常e){System.out.println(“加载驱动程序错误”);}try{String s=“jdbc:odbc:”+dsn;con=DriverManager.getConnection(“,”);}catch(异常e){e.printStackTrace();}公共结果集readRequest(String dbQuery){ResultSet rs=null;try{Statement stmt=con.createStatement();rs=stmt.executeQuery(dbQuery);}catch(异常e){e.printStackTrace();}return rs;}@GabrielHeng我已经根据您的反馈更新了解决方案。