📄 readdocumentdemo.java
字号:
//【例12-12】 读取BLOB数据并保存到磁盘文件。
//程序清单12-12: ReadDocumentDemo.java
package blob.document.mssqlserver;
import java.sql.*;
import java.io.*;
import db.connection.DatabaseConnection;
public class ReadDocumentDemo {
private Connection con = null;
private Statement st = null;
private PreparedStatement ps = null;
private ResultSet rs = null;
public static void main(String[] args) {
new ReadDocumentDemo();
}
public ReadDocumentDemo() {
File file = null;
FileOutputStream fileOutputStream = null;
// 声明byte数组,保存文档
byte[] pBytes = null;
// 创建文档文件的名字数组
String[] fileNames = { "文件01.doc", "文件02.doc", "文件03.doc", "文件04.doc",
"文件05.doc" };
try { // 连接数据库
con = new DatabaseConnection().getMsSqlServerConnection(
"DBdocument", "sa", "ok");
// 创建SQL语句执行类
st = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
String query = "select * from tbldocuments";
// 取得数据集
rs = st.executeQuery(query);
for (int i = 0; i < 5; ++i) {
// 将数据集的游标移到相应的位置
rs.absolute(i + 1);
// 获取文件
file = new File(fileNames[i]);
// 根据文件创建文档写出类
fileOutputStream = new FileOutputStream(file);
pBytes = rs.getBytes(4);
// 向文件写出文档数据
fileOutputStream.write(pBytes);
// 保存文件
fileOutputStream.close();
System.out.println("成功创建文档文件:" + fileNames[i] + ", 数据长度 = "
+ pBytes.length);
}
} catch (SQLException e) {
e.getMessage();
} catch (IOException e) {
e.getMessage();
}
// 关闭连接
closeAll(con, st, ps, rs);
}
public void closeAll(Connection con, Statement smt, PreparedStatement pstm,
ResultSet rset) {
try {
con.close();
smt.close();
pstm.close();
rset.close();
} catch (SQLException e) {
e.getMessage();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -