Microsoft Access 和 Java JDBC-ODBC 错误
Posted
技术标签:
【中文标题】Microsoft Access 和 Java JDBC-ODBC 错误【英文标题】:Microsoft Access and Java JDBC-ODBC Error 【发布时间】:2012-12-08 09:44:57 【问题描述】:尝试使用 java 在 Microsoft access 数据库中插入一些值。
但是我可能会出错,
java.sql.SQLException: [Microsoft][ODBC Driver Manager] 指定的 DSN 包含驱动程序和 线程“主”java.lang.NullPointerException 中的应用程序异常
使用 SysWoW64 > odbcad32 创建数据源 im 并将数据源添加到系统 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 位版本,现在出现错误 [Microsoft][ODBC Driver Manager] Not a valid file name.
【问题讨论】:
codeproject.com/Articles/35018/… 这根本不是您访问 MS Access 数据库的方式,它试图告诉您这一点。 我仍然收到未找到数据源错误。 【参考方案1】:首先确保您可以通过 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/
【讨论】:
以上是关于Microsoft Access 和 Java JDBC-ODBC 错误的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 JDBC 和 Microsoft Access 获取自动递增的密钥?
使用 JDBC 将 Microsoft Access 数据库连接到 Java 并进行编译
如何在 java 中访问 microsoft access 数据库 (1997)