Microsoft Access和Java JDBC-ODBC错误

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

我可以犯一个错误,

java.sql.sqlException: [Microsoft][ODBC Driver Manager] The specified
DSN contains an architecture mismatch between the Driver and
Application Exception in thread “main” java.lang.NullPointerException

使用SysWoW64创建数据源> odbcad32并将数据源添加到系统DNS.我说这是因为我已经看到64位系统出现问题.但它仍然不适合我.

Microsoft 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位版本,现在我得到一个错误[微软] [ODBC驱动程序管理器]不是一个有效的文件名.

解决方法:

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

另请查看其他回复Can’t connect to MS Access DB with Windows-64bit

特别有趣的是链接到:http://www.selikoff.net/2011/07/26/connecting-to-ms-access-file-via-jdbc-in-64-bit-java/

相关文章

连接数据库的方式:第一种方式:ODBC:开放数据库连接是微软...
JDBCRequest 使用VariableNamesmysql:数据库连接池对象var...
 1.JDBCDBC(JavaDataBaseConnectivity):Java数据库连接技术...
1.需要jar包的支持:java.sqljavax.sqlmysql-conneter-java....
1.简介Activiti是一个业务流程管理(BPM)框架,它是覆盖了业务...
1.JDBC体系系统一组规范:接口JDBC接口(API)包括两个层次:...