如何从64位Java连接到Access .mdb数据库?
嗨,我有以下代码连接到Windows 7操作系统上的MS Access数据库。 我已将数据源快捷方式更改为指向64位odbc然后32位。 但仍然得到错误
java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6956) at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7113) at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3072) at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323) at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174) at java.sql.DriverManager.getConnection(DriverManager.java:579) at java.sql.DriverManager.getConnection(DriverManager.java:221) at TestDBConnection.main(TestDBConnection.java:21)
我的代码是:
import java.sql.Connection; import java.sql.DriverManager; public class TestDBConnection { public static void main(String[] args) { // TODO Auto-generated method stub try { System.out.println("filename"); Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String database = "jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=C:\\Test\\Tests.mdb"; Connection conn = DriverManager.getConnection(database, "", ""); } catch(Exception ex) { ex.printStackTrace(); } } }
我怎么有SQL Workbench工具,通过它可以连接到它而不是通过java代码。
在过去3个小时在Google上搜索时,我正在努力解决这个问题。
如果您的Java应用程序在64位Java虚拟机(JVM)中运行,那么DRIVER={Microsoft Access Driver (*.mdb)}
将无法运行,因为没有64位版本的Jet数据库引擎。 您可以…
- 从此处下载并安装64位版本的Microsoft Access数据库引擎,然后在代码中使用
DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}
。
… 要么 …
- 在32位JVM中运行Java应用程序并继续使用现有的
DRIVER=
字符串。 如果您选择此选项, 此处的相关答案可能会有所帮助。
… 要么 …
- 对Access数据库使用UCanAccess JDBC驱动程序。 它是一个免费的,开源的纯Java实现,因此它适用于32位和64位系统,包括Windows和非Windows。 它也适用于Java 8(已经删除了JDBC-ODBC Bridge)。 有关详细信息,请参阅:
在没有ODBC的情况下从Java操作Access数据库
您可以安装Microsoft提供的64个ODBC ODBC驱动程序
http://www.microsoft.com/en-us/download/details.aspx?id=13255
1)您必须在上面的配置中配置System dsn(驱动程序Microsoft Access驱动程序( .mdb, .accdb))2)链接.mdb数据库并编写下面的代码。
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String database = "jdbc:odbc:systemdsnname"; Connection conn = DriverManager.getConnection(database, "", "");
- MongoDB / Morphia将技术ID保存为ObjectId,尽管它是Java中的String
- 对于openshift v3,Wildfly选项不可用
- Eclipse SVN Synchronze工作空间错误 – 更新SVN工作区的同步视图 – java / nio / file / Paths
- 帮助从.Net创建Zip文件并从Java读取它们
- 用java编写的C编译器
- 在部分声明依赖,即使依赖项没有在任何地方使用?
- Spring的JdbcTemplate和Transactions
- JavaFX和“MediaException:UNKNOWN ……无法创建播放器!”
- 在网站完全打开之前尝试放入登录凭据时“无警报打开”