将文件保存的方法通常在web系统中有几种方式。1、可以将文件上传到文件服务器,然后可以通过访问该文件地址下载或者查看。2、将文件进行二进制编码保存到数据库的大字段中。两种方式各有优缺点,这里就不在描述了。现在说明如何将第2种方式存放于数据库中的二进制编码导出文件。此处只写出关键代码,希望对需要进行如此操作的人有所帮助。
String sql = "select f.fullfileid,f.fullfilename,f.fullfilesize,f.savedfile from file" 该sql中的字段 fullfilename保存的为该文件的文件名以及文件类型。 savedfile字段保存的则为文件的二进制编码。
try {
con = ConfigUtil.getConnection();
stmtSelect = con.prepareStatement(sql);
rs = stmtSelect.executeQuery();
while (rs.next()) {
String fullfileid = rs.getString("fullfileid");
String fileName = rs.getString("fullfilename");
input = rs.getBinaryStream("savedfile");
String newFileName = startNumber + "__" + fullfileid + "__" +fileName;
File file = new File(downLoadPath + newFileName);
file.createNewFile();
fileStream = new FileOutputStream(file);
int len = 0;
byte[] bytes = new byte[1024];
while ((len = input.read(bytes)) != -1) {
fileStream.write(bytes,0,len);
}
fileStream.close();
System.gc();
}
isSuccess = true;
} catch (Exception e) {
isSuccess = false;
throw e;
} finally {
// 略 关闭链接 等操作
}
代码中downLoadPath 变量为 生成文件保存的路径。代码如上面所述,但是往往要根据实际情况去实现。比如如果file表中文件很多数万或者几十万。则要考虑查询效率,可进行分页查询后导出。 记得循环中进行手动内存回收。防止可能常出现的内存溢出。
分享到:
相关推荐
批量导出Oracle数据库中的BLOB字段生成图片,是一项常见的需求,尤其对于那些需要将数据库中的图片资源导出到本地文件系统的情况。下面将详细介绍这一过程及其相关知识点。 首先,我们需要理解BLOB类型。BLOB...
- 执行导出:工具将读取数据库中的大字段数据,根据配置进行处理,并保存到本地或远程位置。 通过这个工具,用户可以避免直接编写复杂的SQL脚本,更高效地管理和备份Oracle数据库中的大对象数据。同时,利用ORM框架...
在开发过程中,尤其是在数据库表维护和部署阶段,开发者可能需要频繁地检查和修改这类大字段的数据。传统的SQL查询分析器可能由于显示限制,无法有效地处理这些内容,导致工作流程受阻。这款数据库大字段编辑工具就...
- `Tools -> Export Tables -> Oracle Export` 选择此选项可以导出为.dmp文件,这是一个二进制格式,支持跨平台,包含权限信息,效率较高,适用于大量数据的导出。 - `Tools -> Export Tables -> SQL Inserts` ...
注意,如果表中含有大字段(如`BLOB`或`CLOB`),此方式可能无法导出,这时应考虑使用Oracle Export或Pl/SQL Developer方式。 3. **Pl/sql Developer**:导出为`.pde`格式,这是PL/SQL Developer特有的文件,只能在...
- **Oracle Export**: 导出为.dmp文件,这是一种二进制格式,跨平台且包含权限信息,适用于大规模数据的快速迁移,广泛应用。 - **SQL Inserts**: 导出为.sql文件,文本格式,便于查看和编辑,但效率较低,适合小...
- 如果表中含有大字段(blob, clob, long),则无法通过这种方式导出。 ##### 4.2 导入表数据 **步骤:** 1. 选择 **Tools -> Import Tables -> Oracle Import**。 2. 浏览并选择之前导出的.pde文件。 3. 按照提示...
- 如果表中含有大字段类型(BLOB、CLOB、LONG),则不支持通过这种方式导入。 2. **导入DMP文件**:如果之前导出了`.dmp`文件,则可以通过“Tools” → “Import Tables” → “Oracle Import”的方式进行导入。 ...
- 导出`.sql`文件时,如果表中有大字段(BLOB、CLOB、LONG),PL/SQL Developer会提示无法以SQL格式导出,建议使用PL/SQL Developer格式(.pde)。 - `.dmp`文件是二进制格式,导入和导出效率高,但只能在相同版本或...
生成的文件可以是.sql格式,但请注意,如果表中含有大字段(如BLOB、CLOB、LONG),则无法以.sql格式导出,因为这种格式不支持大对象。此时,应使用.dmp或.pde格式进行导出。 - **.dmp格式**:这是Oracle的二进制...
vf6.0,要考二级没系统的下哈 Microsoft Visual FoxPro 6.0 for Windows 的常见问题 这些是有关 Microsoft Visual FoxPro 最常见的问题。在您求助 Microsoft 产品支持服务之前,请先查阅这张列表。 若想打印这些...