UCanAccess JDBC 驱动程序可以从Access 数据库的附件字段中提取文件。对于名为 [AttachmentsTable] 的表
ID - 自动编号,主键
描述- 文本 (255)
附件- 附件
以下代码将提取 ID=1 的记录的 [附件] 字段中的所有文件:
import java.io.File;
import java.sql.*;
import net.ucanaccess.complex.Attachment;
...
String dbFileSpec = "C:/Users/Public/AttachmentsDB.accdb";
String connStr = "jdbc:ucanaccess://" + dbFileSpec;
try (Connection conn = DriverManager.getConnection(connStr)) {
try (Statement s = conn.createStatement()) {
try (ResultSet rs = s.executeQuery(
"SELECT Attachments FROM AttachmentsTable WHERE ID=1")) {
rs.next();
// retrieve array of net.ucanaccess.complex.Attachment objects
Attachment[] atts = (Attachment[]) rs.getObject(1);
for (Attachment att : atts) {
System.out.println(att.getName());
org.apache.commons.io.FileUtils.writeByteArrayToFile(
new File("C:/Users/Gord/Desktop/" + att.getName()),
att.getData());
}
}
}
}
有关使用 UCanAccess JDBC 驱动程序的更多信息,请参阅
在没有 ODBC 的情况下从 Java 操作 Access 数据库