但是我可以犯错误,
java.sql.sqlException:[Microsoft][ODBC驱动程序管理器]指定的DSN包含线程“main”java.lang.NullPointerException中驱动程序和应用程序异常之间的体系结构不匹配
使用SysWoW64>odbcad32创建数据源im,并将数据源添加到系统DNS。我这样说,就像我在64位系统中遇到的其他问题一样。然而,它仍然对我不起作用。
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);
}
}
}
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)
我安装了64位版本,现在我得到一个错误[Microsoft][ODBC驱动程序管理器]不是一个有效的文件名。
首先,确保您可以通过ODBC访问该数据库。在odbcad32
中为64位和32位系统创建DSN。然后作为JDBC连接字符串,使用:JDBC:odbc:[CreatedDSN]
。如果您不能以64位版本的odbcad32
连接到Access,那么请确保它在32位版本的odbcad32
中工作,并确保使用32位版本的Java。
还可以查看对以下问题的其他响应:无法用Windows-64bit连接到MS Access DB
特别有趣的是以下链接:http://www.selikoff.net/2011/07/26/connect-to-ms-access-file-via-jdbc-in-64-bit-java/
问题内容: 是否有一个名为JDBC中,而不是那些位置参数,比如在下面的查询? 问题答案: JDBC不支持命名参数。除非你必须使用普通的JDBC(这会造成麻烦,让我告诉你),否则我建议使用Springs Excellent JDBCTemplate,它可以在没有整个IoC容器的情况下使用。 NamedParameterJDBCTemplate支持命名参数,你可以像这样使用它们:
问题内容: 我不知道使用一个相对于另一个有什么优点和缺点。这个问题源自我在这里得到的建议:根据记录的实际大小为数据库查询动态分配缓冲区。 我正在寻找重要差异的列表(而不是详尽的列表),这将有助于我做出有根据的决策。我有win32 :: odbc的工作经验,可以对此进行真正的证明。如果有人可以在“书面”详细信息的基础上分享他/她的经验,那将非常有帮助。 附加信息:Win32 :: ODBC的作者在此
我正在使用JavaJDBC将日期写入SQLServer2008,然后将其读回 读回的日期始终比实际写入的日期早两天。 我正在插入包含日期字段的行,其中包含准备好的语句。日期值由以下人员提供: 将日期写入数据库后,如果我运行以下命令,SQL server将显示正确的日期: 如果我通过JDBC运行相同的查询,然后使用以下方法从结果集中检索日期值 插入的行是表中唯一具有非空日期的行,因此这似乎不是读取错
主要内容:创建 ODBC 连接,连接到 ODBC,取回记录,从记录中取回字段,关闭 ODBC 连接,ODBC 实例ODBC 是一种应用程序编程接口(Application Programming Interface,API),使我们有能力连接到某个数据源(比如一个 MS Access 数据库)。 创建 ODBC 连接 通过一个 ODBC 连接,您可以连接到您的网络中的任何计算机上的任何数据库,只要 ODBC 连接是可用的。 这是创建到达 MS Access 数据库的 ODBC 连接的方法: 在控
在Ruby下使用ODBC的扩展类库。
DBD-ODBC 为 Perl 的 DBI::DBD 提供了 ODBC 驱动的功能,允许 Perl 程序通过它访问各种 ODBC 数据源。在 Unix 平台上支持 unixODBC 和 iODBC。