Da die ursprünglich in der Datenbank gespeicherten Dokumente in das Dateisystem übertragen werden müssen, habe ich ein einfaches Programm geschrieben, um diese Funktion auszuführen. Der Code lautet wie folgt:
Java-Code
Kopieren Sie den Codecode wie folgt:
import java.io.BufferedOutputStream;
java.io.File importieren;
import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import org.dbunit.util.Base64;
öffentliche Klasse ReadBlob {
/**
* @param args
*/
public static void main(String[] args) löst eine Ausnahme aus {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Verbindungsverbindung = DriverManager.getConnection(
„jdbc:sqlserver://localhost:1433;DatabaseName=test1“, „sa“,
„123456“);
PreparedStatement ps = conn.prepareStatement("select * from aa");
ResultSet rs = ps.executeQuery();
while(rs.next()){
String fileName = rs.getString("FileName");
String-Inhalt = rs.getString("Content");
byte[] byte_content = Base64.decode(content);
genericFile(byte_content, "D://doc", fileName);
}
conn.close();
}
/**
* Generieren Sie Dateien basierend auf dem Byte-Array
*/
public static void genericFile(byte[] bfile, String filePath,String fileName) {
BufferedOutputStream bos = null;
FileOutputStream fos = null;
Dateidatei = null;
versuchen {
Dateiverzeichnis = neue Datei(filePath);
if(!dir.exists()&&dir.isDirectory()){
dir.mkdirs();
}
file = new File(filePath+"//"+fileName);
fos = new FileOutputStream(file);
bos = new BufferedOutputStream(fos);
bos.write(bfile);
} Catch (Ausnahme e) {
e.printStackTrace();
} Endlich {
if (bos != null) {
versuchen {
bos.close();
} Catch (IOException e1) {
e1.printStackTrace();
}
}
if (fos != null) {
versuchen {
fos.close();
} Catch (IOException e1) {
e1.printStackTrace();
}
}
}
}
}