通过 JDBC 访问 Access(使用 ODBC?)
Posted
技术标签:
【中文标题】通过 JDBC 访问 Access(使用 ODBC?)【英文标题】:Accessing Access over JDBC (using ODBC?) 【发布时间】:2010-11-27 23:25:24 【问题描述】:我正在寻找一种在 Java 应用程序中打开 Access MDB 文件的方法(使用 JDBC)。
快速的 Google 搜索表明我需要 JDBC-ODBC 桥...
这是否意味着我需要配置每个我想在其上运行我的应用程序的系统,以便为我想打开的 MDB 提供一个 ODBC DSN?
还有一个问题(因为我以前从未使用过 ODBC):通信是通过某种套接字(以客户端/服务器样式)还是通过方法/函数调用(例如使用嵌入式 Derby db)?
【问题讨论】:
【参考方案1】:1) 您无需为每个系统配置 SYSTEM 或 USER ODBC DSN 即可访问所需的 MDB。您仍然可以在 JDBC URL 中提供您需要的所有信息:
jdbc:odbc:Driver=Microsoft Access Driver (*.mdb);DBQ=c:/yourdb.mdb
但请记住,系统将需要安装您正在使用的驱动程序。
2) 通信将按照您的 ODBC 驱动程序通信的方式进行。如果它打开一个到服务器的套接字(发生 Oracle ODBC 连接的方式),它将打开一个套接字。如果它使用库函数调用,它将通过库函数调用进行通信。
JDBC 到 ODBC 的通信使用 JNI 进行通信。
【讨论】:
我猜你可能有一个 JDBC 代理驱动程序。也就是说,一个 JDBC 驱动程序通过套接字连接到另一个 Java 进程,然后该进程在真正的 JDBC 驱动程序(JDBC-ODBC 桥)上执行调用。我认为 JDBC、OBDC 和 UDBC 存在这样的事情。 @Buttercup:我发布的具体代码仅适用于 Windows。但是你仍然可以在 Linux 下使用 JDBC-ODBC 桥接器(当然前提是你已经安装了 ODBC)。 @Tin Hawtin:我认为您指的是 JDBC Type 3(中间件)驱动程序。以上是关于通过 JDBC 访问 Access(使用 ODBC?)的主要内容,如果未能解决你的问题,请参考以下文章
通过 Java jdbc odbc 连接到 Access 文件期间出现“超出系统资源”
如何在 java 中访问 microsoft access 数据库 (1997)