Hey,
meine Idee war ein Bild zu nem byte array zu machen und dieses dann in der DB zu speichern, nur weis ich leider nicht genau wie ich das angehen soll, hab leider nicht zu viel dazu im Internet gefunden (vllt auch nach was falschem gesucht)
mein bisheriger Ansatz ist:
und eingefügt werden soll es dann so:
Das Feld Cover, also dort wo der byte array eingefügt werden soll ist vom typ BINARY(1000) (hab das so aus der H2 dokumentantion übernommen, ist das überhaupt richtig?)
Error bekomm ich folgenden:
Ich frag mich jetzt, ob:
Schonmal Danke im Voraus, Grüße!
meine Idee war ein Bild zu nem byte array zu machen und dieses dann in der DB zu speichern, nur weis ich leider nicht genau wie ich das angehen soll, hab leider nicht zu viel dazu im Internet gefunden (vllt auch nach was falschem gesucht)
mein bisheriger Ansatz ist:
Java:
private void getImageByteArray(BufferedImage image)
{
try {
ByteArrayOutputStream os = new ByteArrayOutputStream();
ImageIO.write(image, "jpeg", os);
byte[] imageData = os.toByteArray();
guiElements.put("bytes", imageData);
} catch (IOException e) {
e.printStackTrace();
}
}
und eingefügt werden soll es dann so:
Das Feld Cover, also dort wo der byte array eingefügt werden soll ist vom typ BINARY(1000) (hab das so aus der H2 dokumentantion übernommen, ist das überhaupt richtig?)
Java:
public void addObject()
{
try {
stmt.executeUpdate(
"INSERT INTO DB_OBJECTS " +
"( ISBN_10, ISBN_13, TITEL, VERLAG, PREIS, SPRACHE, FORMAT, SEITEN, GENRE, AMAZON, BEMERKUNGEN, ZUSATZ_INFOS, COVER, VERFUGBAR) " +
"VALUES(" +
"'"+((JTextField)guiElements.get("isbn_10")).getText()+"', " +
/* gekürzt */
"'"+guiElements.get("bytes")+"', " +
"'TRUE'" +
")");
} catch (SQLException e) {
e.printStackTrace();
}
Error bekomm ich folgenden:
Java:
org.h2.jdbc.JdbcSQLException: Hexadezimal Zahl mit einer ungeraden Anzahl Zeichen: "[B@553b7453"
Hexadecimal string with odd number of characters: "[B@553b7453"; SQL statement:
INSERT INTO DB_OBJECTS ( ISBN_10, ISBN_13, TITEL, VERLAG, PREIS, SPRACHE, FORMAT, SEITEN, GENRE, AMAZON, BEMERKUNGEN, ZUSATZ_INFOS, COVER, VERFUGBAR) VALUES('3836216825', '978-3836216821', 'Der SAP-Grundkurs für Einsteiger und Anwender (SAP PRESS)', 'SAP PRESS', '29,90 €', 'Deutsch', 'Broschiert', '398 Seiten', '', 'http://www.amazon.de/Der-SAP-Grundkurs-Einsteiger-Anwender-PRESS/dp/3836216825', '', '', '[B@553b7453', 'TRUE') -- ('3836216825', '978-3836216821', STRINGDECODE('Der SAP-Grundkurs f\u00fcr Einsteiger und Anwender (SAP PRESS)'), 'SAP PRESS', STRINGDECODE('29,90 \u20ac'), 'Deutsch', 'Broschiert', '398 Seiten', '', 'http://www.amazon.de/Der-SAP-Grundkurs-Einsteiger-Anwender-PRESS/dp/3836216825', '', '', '[B@553b7453', 'TRUE') [90003-169]
Ich frag mich jetzt, ob:
- Ist der Datentyp für einen byte[] überhaupt richtig? - BINARY(1000)
- Wird das Bild überhaupt richtig in ein byte array umgewandelt? Bin mir da auch nicht ganz sicher - könnt ihr vllt mal kurz über die Methode schauen
- Wird ein byte array auch "ganz normal" im insert into befehl verwendet oder muss mann da mit irgend ner stream methode arbeiten? (hatte da irgendwas im internet zu gesehen, aber ka wie ich das zu ordnen soll) - wie ihr seht steht im Error beim BINARY feld als eintrag ja '[B@553b7453'
Schonmal Danke im Voraus, Grüße!