Microsoft Access和Java JDBC
尝试使用java在Microsoft Access数据库中插入一些值。
然而,我可以有一个错误,
java.sql.SQLException:[Microsoft] [ODBC Driver Manager]指定的DSN包含线程“main”中的驱动程序和应用程序异常之间的体系结构不匹配java.lang.NullPointerException
使用SysWoW64> odbcad32创建数据源im并将其添加到系统DNS。 我这样说是因为我已经看到了64位系统出现问题的地方。 但它仍然不适合我。
微软Office 32bit。
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 64bit
我已经安装了64位版本,现在我开了一个错误[Microsoft] [ODBC Driver Manager]不是有效的文件名。
首先确保您可以通过ODBC访问该数据库。 为64位和32位系统制作odbcad32
DSN。 然后作为JDBC连接字符串使用: jdbc:odbc:[CreatedDSN]
。 如果无法连接到64位版本的odbcad32
Access,请确保它在32位版本的odbcad32
,并确保使用32位版本的Java。
也看看其他答复:不能连接到Windows-64位的MS Access数据库
特别有趣的是链接到:http://www.selikoff.net/2011/07/26/connecting-to-ms-access-file-via-jdbc-in-64-bit-java/
链接地址: http://www.djcxy.com/p/64907.html