jdbc Access mdb Driver

最近刚好有个项目要连接ACCESS的MDB数据并导入到ORACLE中,使用

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String strurl="jdbc:odbc:driver={Microsoft Access Driver(*.mdb)};DBQ=E:\\db.mdb";
Connection conn=DriverManager.getConnection(strurl);


时报了以下的错误  java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序,苦与网上基本上找不到原因只能上外文网找找了 

经过GOOGLE后找到一个jstels连接方式http://www.csv-jdbc.com/ 这个网中有比较强大的连接csv\xml\dbf\mdb\engine的驱动,需要的同学可以上这个网上下载
这里提供mdb的连接驱动和使用说明

Installation

Add the driver jar files (mdbdriver.jar + required third-party libraries) to your classpath or extract these jars to the directory of your application.

Driver Classes

 

Description

Classes

Driver class (JDBC API v1.0)

jstels.jdbc.mdb.MDBDriver2

Data Source class (JDBC API v2.0)

jstels.jdbc.mdb.MDBDataSource2

Connection Pool Data Source class (JDBC API v2.0)

jstels.jdbc.mdb.MDBConnectionPoolDataSource2

URL Syntax

The connection URL is jdbc:jstels:mdb:path_to_mdb_file, where path_to_mdb_fileis:

  • an absolute or relative path to a Microsoft Access database (MDB or ACCDB) file, e.g.:

    jdbc:jstels:mdb:c:/mdb_directory/test.mdb

    jdbc:jstels:mdb:mdb_directory/test2.mdb

    jdbc:jstels:mdb:mdb_directory/access2007.accdb

  • path to a file within the CLASSPATH (read-only), e.g.:

    jdbc:jstels:mdb:classpath://resources/test.mdb

  • path to a file within a ZIP (JAR) file (read-only), e.g.:

    jdbc:jstels:mdb:zip://c:/dir/archive.zip/test.mdb

  • path to a file located on a FTP server (syntax: ftp://user:password@hostname[:port]/[dirpath/]mdbfile), e.g.:

    jdbc:jstels:mdb:ftp://login:password@somesite.com:21/mdb_directory/test.mdb

  • SFTP URL to the SFTP-server directory (syntax: sftp://user:password@hostname[:port]/[dirpath/]mdbfile, also required third-party libraries Commons VFS and JSch for this protocol), e.g.:

    jdbc:jstels:mdb:sftp://login:password@somesite.com:22/mdb_directory/test.mdb

  • HTTP URL to a file (read-only), e.g.:

    jdbc:jstels:mdb:http://www.somesite.com/mdb_directory/test.mdb

  • SMB/CIFS URL to a file located on a SMB/CIFS server (e.g.: MS Windows share or Samba server, syntax: smb://[user:password@]hostname/share/[dirpath/]mdbfile):

    jdbc:jstels:mdb:smb://your_server/your_share/mdb_directory/test.mdb

    jdbc:jstels:mdb:smb://login:password@your_server/your_share/mdb_directory/test.mdb

 PS:这个是收费的驱动, 本人已经破解。。。如需要可私信我!或者至优快云下载:http://download.youkuaiyun.com/detail/chaico/5072327

 

 

 

### 使用 JDBC 查询 Access 数据库 (MDB 文件) 为了通过 Java 的 JDBC 接口查询 Access 数据库文件 (.mdb),需要配置合适的驱动程序并编写相应的连接字符串。以下是具体实现方法: #### 配置环境 首先,加载适用于 ODBC-JDBC 桥接的类,这可以通过 `Class.forName` 方法完成[^1]。 ```java try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch (ClassNotFoundException e) { System.out.println("JDBC/ODBC Bridge driver not found."); } ``` #### 建立数据库连接 定义 URL 来指定要使用的 ODBC 驱动以及目标 .mdb 文件的位置。这里假设数据库位于 E:\db1.mdb 路径下[^2]。 ```java String url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=E:\\db1.mdb"; Connection conn; try { conn = DriverManager.getConnection(url); } catch (SQLException ex) { Logger.getLogger(YourClassName.class.getName()).log(Level.SEVERE, null, ex); } ``` 注意:对于不同版本的操作系统或不同的 JDK 版本,可能需要调整上述路径中的斜杠字符以适应特定平台的要求。 #### 执行 SQL 查询 一旦建立了到数据库的有效连接,则可以创建 Statement 对象来执行 SQL 语句,并处理 ResultSet 中返回的数据。 ```java Statement stmt = null; ResultSet rs = null; try { stmt = conn.createStatement(); String sqlQuery = "SELECT * FROM YourTableName"; // 替换成实际表名 rs = stmt.executeQuery(sqlQuery); while (rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); System.out.print("ID: " + id); System.out.println(", Name: " + name); } } catch (SQLException se){ // 处理 JDBC 错误... } finally{ try{if(stmt!=null) stmt.close(); } catch(SQLException ignored){} try{if(conn!=null) conn.close(); } catch(SQLException se){ /* 忽略关闭错误 */ } } ``` 此代码片段展示了如何打开一个简单的 SELECT 查询并将结果打印出来。记得替换 `"YourTableName"` 和字段名称 (`"id"`, `"name"`) 为真实的表格结构信息。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值