Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Microsoft Access和Java JDBC-ODBC错误_Java_Jdbc_Odbc - Fatal编程技术网

Microsoft Access和Java JDBC-ODBC错误

Microsoft Access和Java JDBC-ODBC错误,java,jdbc,odbc,Java,Jdbc,Odbc,正在尝试使用java在Microsoft access数据库中插入一些值 但是我可以看出一个错误 java.sql.SQLException:[Microsoft][ODBC驱动程序管理器]指定的 DSN包含驱动程序和系统之间的体系结构不匹配 线程“main”java.lang.NullPointerException中的应用程序异常 使用SysWoW64>odbcad32创建数据源im,并将其添加到系统DNS中。我这样说是因为我在其他地方看到64位系统出现问题。然而,它仍然不适合我 微软Off

正在尝试使用java在Microsoft access数据库中插入一些值

但是我可以看出一个错误

java.sql.SQLException:[Microsoft][ODBC驱动程序管理器]指定的 DSN包含驱动程序和系统之间的体系结构不匹配 线程“main”java.lang.NullPointerException中的应用程序异常

使用SysWoW64>odbcad32创建数据源im,并将其添加到系统DNS中。我这样说是因为我在其他地方看到64位系统出现问题。然而,它仍然不适合我

微软Office 32位

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;


public class AuctionHouseJDBC {

    /**
     * @param args
     */
    public static void main(String[] args) {

        String theItem = "Car";
        String theClient="Name";
        String theMessage="1001";



Connection conn =null; // Create connection object

        try{
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            System.out.println("Driver Found");
        } catch(Exception e) {
            System.out.println("Driver Not Found");
            System.err.println(e);
        }

        // connecting to database
        try{
            String database ="jdbc:odbc:Driver={Microsoft Access Driver (*.accdb)};DBQ=AuctionHouseDatabase.accdb;";

            conn = DriverManager.getConnection(database,"","");

            System.out.println("Conn Found");
        }
        catch(SQLException se) {
            System.out.println("Conn Not Found");
            System.err.println(se);
        }
        // Create select statement and execute it

        try{        
            /*String insertSQL = "INSERT INTO AuctionHouse VALUES (  "
                    +"'" +theItem+"', "  
                    +"'" +theClient+"', "
                    +"'" +theMessage+"')";  
            */

            Statement stmt = conn.createStatement();
            String insertSQL = "Insert into AuctionHouse VALUES ('Item','Name','Price')";

             stmt.executeUpdate(insertSQL);
            // Retrieve the results

            conn.close();
        } catch(SQLException se) {
            System.out.println("SqlStatment Not Found");
            System.err.println(se);
        }

    }

}
StaceTrace:

java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
    at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbcConnection.initialize(Unknown Source)
Microsoft Office 64位


我安装了64位版本,现在我收到一个错误[Microsoft][ODBC驱动程序管理器]不是有效的文件名。

首先确保您可以通过ODBC访问该数据库。在64位和32位系统的
odbcad32
中生成DSN。然后作为JDBC连接字符串使用:
JDBC:odbc:[CreatedDSN]
。如果无法在64位版本的
odbcad32
中连接到Access,请确保它在32位版本的
odbcad32
中工作,并确保使用32位版本的Java

此外,还可以查看对以下内容的其他回应:


特别有趣的是链接到:

首先确保您可以通过ODBC访问该数据库。在64位和32位系统的
odbcad32
中生成DSN。然后作为JDBC连接字符串使用:
JDBC:odbc:[CreatedDSN]
。如果无法在64位版本的
odbcad32
中连接到Access,请确保它在32位版本的
odbcad32
中工作,并确保使用32位版本的Java

此外,还可以查看对以下内容的其他回应:


特别有趣的是链接:

这不是访问MS access数据库的方式,它试图告诉您这一点。我仍然收到一个数据源未找到错误。这不是你访问MS access数据库的方式,它试图告诉你这一点。我仍然得到一个数据源未找到错误。