元々データベースに保存されていたドキュメントをファイル システムに転送する必要があるため、この機能を完了するための簡単なプログラムを作成しました。コードは次のとおりです。
Javaコード
次のようにコードをコピーします。
インポート java.io.BufferedOutputStream;
java.io.ファイルをインポートします。
java.io.FileOutputStreamをインポートします。
インポート java.io.IOException;
java.sql.Connectionをインポートします。
インポートjava.sql.DriverManager;
インポートjava.sql.PreparedStatement;
インポートjava.sql.ResultSet;
org.dbunit.util.Base64 をインポートします。
パブリック クラス ReadBlob {
/**
* @param 引数
*/
public static void main(String[] args) throws Exception {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
接続 conn = DriverManager.getConnection(
"jdbc:sqlserver://localhost:1433;データベース名=test1", "sa",
"123456");
PreparedStatement ps = conn.prepareStatement("select * from aa");
ResultSet rs = ps.executeQuery();
while(rs.next()){
文字列ファイル名 = rs.getString("ファイル名");
文字列コンテンツ = rs.getString("コンテンツ");
byte[] byte_content = Base64.decode(content);
generateFile(byte_content, "D://doc", fileName);
}
conn.close();
}
/**
* バイト配列に基づいてファイルを生成します
*/
public static void generatedFile(byte[] bfile, String filePath,String fileName) {
BufferedOutputStream bos = null;
FileOutputStream fos = null;
ファイル file = null;
試す {
ファイルディレクトリ = 新しいファイル(ファイルパス);
if(!dir.exists()&&dir.isDirectory()){
dir.mkdirs();
}
file = 新しいファイル(ファイルパス+"//"+ファイル名);
fos = 新しい FileOutputStream(ファイル);
bos = 新しい BufferedOutputStream(fos);
bos.write(bfile);
} catch (例外 e) {
e.printStackTrace();
} ついに {
if (bos != null) {
試す {
bos.close();
キャッチ (IOException e1) {
e1.printStackTrace();
}
}
if (fos != null) {
試す {
fos.close();
キャッチ (IOException e1) {
e1.printStackTrace();
}
}
}
}
}