Hi Leute,
soll in einer MySQL DB Datein speichern und bei bedarf auch wieder auslesen. Mein Code unfktioniert soweit. Jedoch hab ich das Problem dass sobald eine Dtaie ein größe von zirka 15 MB überschreitet der Heap von Java überläuft.
Hier mal meine Methode zum befüllen der DB:
Bei der Methode liesDatei(datei, offsetDatei) entsteht noch kein Fehler. Also muss es an der Befüllung der Datenbank liegen.
Falls dies nicht genügt kann ich den Rest noch hinterher werfen.
Gruß Jan
soll in einer MySQL DB Datein speichern und bei bedarf auch wieder auslesen. Mein Code unfktioniert soweit. Jedoch hab ich das Problem dass sobald eine Dtaie ein größe von zirka 15 MB überschreitet der Heap von Java überläuft.
Hier mal meine Methode zum befüllen der DB:
Code:
private void schreibePDFinDB(String dateiID, String pfad, int offsetDatei, int packetGroesse)
throws IOException, SQLException {
int partOffset = 0;
int partBytesRead = 0;
int partNr = 0;
int partGroesse = 0;
File datei = new File(pfad);
byte[] bytes = this.liesDatei(datei, offsetDatei);
int bytesLeft = bytes.length;
while (bytesLeft > 0) {
if (bytesLeft < packetGroesse) {
partGroesse = bytesLeft;
} else {
partGroesse = packetGroesse;
}
partNr += 1;
ByteArrayInputStream byteInpStr = new ByteArrayInputStream(bytes, partOffset,
partGroesse);
dbBinaerDaten.writeBinaerDaten(dateiID, partNr, partBytesRead, byteInpStr);
bytesLeft -= partGroesse;
partOffset += partGroesse;
}
}
Code:
public void writeBinaerDaten(String dateiID, int part, int leng, ByteArrayInputStream daten)
throws SQLException {
String objid = ObjectID.getOBJID(199);
java.sql.PreparedStatement ps = this.getConnection().prepareStatement(
"INSERT into BINAER_DATEN VALUES(?,?,?,?,?)");
ps.setString(1, objid);
ps.setString(2, dateiID);
ps.setInt(3, part);
ps.setInt(4, leng);
ps.setBlob(5, daten);
ps.execute();
}
Bei der Methode liesDatei(datei, offsetDatei) entsteht noch kein Fehler. Also muss es an der Befüllung der Datenbank liegen.
Falls dies nicht genügt kann ich den Rest noch hinterher werfen.
Gruß Jan
Zuletzt bearbeitet: