gpt4 book ai didi

java - Microsoft Access 和 Java JDBC-ODBC 错误

转载 作者:行者123 更新时间:2023-12-02 00:06:25 25 4
gpt4 key购买 nike

尝试使用 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 位系统出现问题。但它对我来说仍然不起作用。

微软 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)

微软 Office 64 位

我安装了 64 位版本,现在出现错误 [Microsoft][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/

关于java - Microsoft Access 和 Java JDBC-ODBC 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13776320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com