MySQL Blob aus DB auslesen und einer Tabelle ausgeben

roboticoo

Mitglied
Hey leute hab ein Problem und bin total auf eure Hilfe angewiesen!

aaalso ich hab folgende Funktion die mir das Bild aus der DB ausliest

Java:
public static BufferedImage getImageById(int artikel_id) throws SQLException, IOException 
		{
			
			ResultSet rs12 = null;
			openDatabaseConnection(Info.datenbankName);
			
			String sqlid = "SELECT img FROM " + Info.picTabelle + 
					" WHERE fk_artikel_id=" + artikel_id;
			BufferedImage buffimg = null;
	
			Statement stat = createStatement();
			rs12 = stat.executeQuery(sqlid);
			rs12.next();
			InputStream img = rs12.getBinaryStream("img"); 
			buffimg= ImageIO.read(img); 
			
			return buffimg;
		}

Der SQL befehl funktioniert im manager also er liefert mir das erwartete Ergebnis

So nun will ich in meinem Servlet in einer Tabelle das ausgelesene Bild ausgeben lassen

Java:
..
..
..
img = DBZugriff.getImageById(artikel_id);
Graphics g = img.getGraphics();


while (rs.next())
{
   ..
   ..
   ..
  pw.write("<tr><td>"+ rs.getString("artikelbezeichnung") +
	     "</td><td>"+ rs.getString("name")+
	     "</td><td>"+ rs.getString("verkaufspreis") +
	     "</td><td>"+ rs.getInt("lagerbestand")+
	     "</td><td>"+ rs.getInt("mengenrabatt") +
	     "</td><td>"+"<input type='number' name='anzahlTickets"+rs.getInt("pk_artikel_id")+"' value=''>" +
	     "</td><td>"+ g.drawImage(img, 70, 20, null) + "</td></tr>");
	}
}

So das problem => er schreibt mir in jede zeile bei der Produktvorschau nur true und gibt mir das bild nicht aus
Bitte euch recht herzlichst um hilfe :idea:
 
Zuletzt bearbeitet:

stg

Top Contributor
Natürlich gibt der
Code:
true
aus, weil die Funktion
Code:
drawImage(..)
nunmal einen boolean-Wert zurückgibt! Die Klassen aus
Code:
java.awt.*
haben hier auch gar nichts zu suchen, du schreibst ja keine Desktopanwendung..

Gibt es denn einen Grund dafür, wieso du das alles in einem Servlet machen willst/musst? Der übliche Weg ist eher ein Servlet zu schreiben, welches dir ausschließlich das Bild zurückgibt und anschließend verlinktst du in einer entsprechenden jsp oder jsf-Seite an der Stelle, an der du das Bild angezeigt haben möchtest, einfach das Servlet.
 

roboticoo

Mitglied
danke für die antwort!

nun ja ich arbeite grade an einer Übung wo ich einen onlineshop mit nem warenkorb modellieren muss und mittels Servlets lösen soll.

Die Benutzeransicht beim einkaufen ist auch ein Servlet welches mir die Daten aus der Tabelle Artikel ausliest und in einer dynamischen html Tabelle ausgibt, hierbei kann der Benutzer halt mehrere Artikel auswählen und eine anzahl mitgeben und beim drücken des Buttons "In den Warenkorb" werden die Artikel mit der Anzahl halt zum Warenkorb hinzugefuegt...

Das anzeigen des Bildes bei Der Artikelauswahl war kein MUSS das thema hatten wir halt noch nicht, aber da ich mit dem rest schon fertig bin wollte ich einbischen vorarbeiten und hab mich da einwenig damit gespielt.. hab davor noch nie mit blobs gearbeitet deswegen bin ich da bei der realisierung der ausgabe total gescheitert

Mit deinem Lösungsansatz kann ich leider nicht wirklich was anfangen :rtfm:
 
Zuletzt bearbeitet:

stg

Top Contributor
Das Problem bei der Sache ist ja, dass dein Servlet, so wie du es gestalten willst, reinen Text zurückgibt (bzw HTML, aber das ist ja im Grunde auch nur irgendein Textfile). Irgendwo in deinem Servlet wirst du eine Zeile haben, die etwa so aussieht:
Code:
response.setContentType("text/html");
Wenn du eine reine HTML-Seite schreibst, dann malst du das Bild ja auch nicht in deine HTML-Seite, sondern gibst nur den Link an, an dem das Bild gefunden werden kann. So in etwa musst du deine Seite auch aufbauen, wenn du mit Servlets arbeitest.

Willst du ein Servlet schreiben, welches dir ein Bild zurückgibt, dann musst du den ContentType entsprechend anpassen (z.B.
Code:
image/png
, je nachdem, was das denn genau für ein Typ ist)
In deinem Servlet schreibst du dein Blob dann einfach direkt in den OutputStream, und das wars im wesentlichen (dazu gibts aber auch einen riesen Haufen Codebeispiele im Netz)

Kümmer dich also erst darum ein solches Servlet zu schreiben, welches wirklich NUR ein Bild zurückgibt.
 

roboticoo

Mitglied
vielen dank für die schnelle Antwort !

dann werde ich das mal versuchen ^^

Edit: eine Frage bleibt mir dann noch offen, ist es dann nicht viel einfacher wenn ich in die Datenbank das Bild nicht als Blob speichere sondern nur einen String mit dem Pfad des bildes?

dann kann ich doch einfach "<img src="+rs.getString("pfad") benutzen?
 
Zuletzt bearbeitet:

stg

Top Contributor
Das geht natürlich auch, die zuerst angedachte Lösung finde ich persönlich aber schöner, da dann Daten, die zusammengehören, auch zusammen abgespeichert sind.
Wenn du dann später mal einen Webshop mit vielen tausend Artikeln hast und das Sortiment sich ständig ändert, dann will ich nicht der arme Kerl sein, der die Daten und Verlinkungen dann pflegen muss :) ...und dann ist schnell mal ausversehen ein falsches Bild gelöscht und und.

Außerdem ist das (Ausgabe eines Bildes aus einer Datenbank) wirklich eine Standardaufgabe für ein Servlet, was man in jedem Fall mal gelöst haben muss. Sowas macht man ja dann auch nur einmal und kann das Teil dann überall aufs neue verwenden.
 

stg

Top Contributor
Das geht glaube ich erst ab einer bestimmten Anzahl eigener Beiträge. Wenn du noch längr hier bleibst und dich dann noch daran erinnerst, kannst du das ja nachholen ;)
Aber ansonsten haben dir meine Hinweise hoffentlich einfach ein wenig geholfen. Gedankt hast du ja hier, mehr braucht's doch nicht. Den Zähler dafür find ich eh panne...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Wie kann ich textdateien, die als BLOB abgespeichert sind, aus der Datenbanktabelle auslesen? Datenbankprogrammierung 23
D Blob MimeTyp auslesen Datenbankprogrammierung 2
P MySQL Objekt aus BLOB auslesen Datenbankprogrammierung 3
C MP3 in DB als Blob, wieder auslesen und als MP3 speichern??? Datenbankprogrammierung 8
krgewb Breite und Höhe von Blob Datenbankprogrammierung 7
H Oracle Resize eines Images in Java und Rückgabe des Image als BLOB an die Oracle Datebank Datenbankprogrammierung 14
H Java Class zum komprimieren von Jpeg-Images zum Einbinden in Oracle DB - Bild als blob (in und out) Datenbankprogrammierung 23
D MySQL Sicherheitslücke als Blob? Datenbankprogrammierung 3
buggy84 MySQL BLOB Geschwindigkeit Datenbankprogrammierung 16
L H2 Blob Dateien in der DB komprimieren? Datenbankprogrammierung 8
L H2 Blob Spalte im Client anzeigen Datenbankprogrammierung 2
E Wie kann man das Problem mit der BLOB-Spalte lösen? Datenbankprogrammierung 1
E Wie kann man BLOB-Spalten in DB2 einfügen? Datenbankprogrammierung 9
J BLOB to ImageIcon? Datenbankprogrammierung 3
Kenan89 Sinnvoller URL oder BLOB? Datenbankprogrammierung 2
F H2:Wie kann man insert eine Reihe "int" wert als blob in table? Datenbankprogrammierung 12
N Leeres Blob in ein PreparedStatement eintragen Datenbankprogrammierung 2
C MySQL Fragen zu BLOB zu byte[], Date zu java.util.Date uvm. Datenbankprogrammierung 6
M Problem Array in BLOB-Feld in DerbyDB zu speichern Datenbankprogrammierung 5
S BLOB in Datei speichern Datenbankprogrammierung 8
S Hibernate Blob mit Stream speichern Datenbankprogrammierung 3
V PostgreSQL langsam (Blob) Datenbankprogrammierung 10
G Blob aus Oracle-Datenbank Datenbankprogrammierung 2
O Vector als Blob in Oracle Datenbank speichern Datenbankprogrammierung 3
D Insert Oracle BLOB Datenbankprogrammierung 1
B Java Derby Datenbank mit CLOB & BLOB Datenbankprogrammierung 5
J Bild aus Mysql Blob in Webseite einbinden Datenbankprogrammierung 9
H Blob erzeugen Datenbankprogrammierung 2
T Inhalt von Blob in Console ausgeben Datenbankprogrammierung 2
G Sybase IMAGE-Daten zu MySQL als BLOB schreiben. Datenbankprogrammierung 2
T Datei (Blob) mit verknüpfter Software öffnen? Datenbankprogrammierung 4
G File nach Blob konvertieren ? Datenbankprogrammierung 6
G JPEG to BLOB Datenbankprogrammierung 7
H File into blob Datenbankprogrammierung 3
A Blob in Oracle-DB einfügen (veraltete Methode) Datenbankprogrammierung 3
EagleEye Blob -> backup Datenbankprogrammierung 6
Y Problem mit Ablage einer Datei in einer Datenbank als BLOB Datenbankprogrammierung 6
O Oracle Blob in MySQL Blob umwandeln Datenbankprogrammierung 2
L JPA EclipseLink PostgreSQL auslesen mit Query Datenbankprogrammierung 2
Zrebna Lediglich interne DB-Verbindungen (Connections) auslesen - mittels Java Datenbankprogrammierung 4
L Oracle Oracle Datumsspalte auslesen Datenbankprogrammierung 5
A Umsätze der Bank auslesen Datenbankprogrammierung 7
G MySQL JDBC Metadaten auslesen aus .accdb -> Primärschlüssel manchmal erkannt manchmal nicht Datenbankprogrammierung 3
F Auslesen einer .dbf-Datei, Zuordnung Index Datenbankprogrammierung 0
NIckbrick MySQL Befehle aus Datenbank auslesen Datenbankprogrammierung 21
H In hibernate.cfg.xml schreiben und auslesen Datenbankprogrammierung 0
L MySQL ResultSet vollständig auslesen Datenbankprogrammierung 20
K SQLite Datenbank in App integrieren: Vor Auslesen schützbar? Datenbankprogrammierung 6
K Java Datenbank auslesen Datenbankprogrammierung 8
W Daten aus einer Datei von einem VServer auslesen Datenbankprogrammierung 1
J Onlinedatenbank einmalig auslesen Datenbankprogrammierung 1
C MySQL Datenbank auslesen/beschreiben und Zusatz Datenbankprogrammierung 1
E primaryKey auslesen - Datensätze abgleichen Datenbankprogrammierung 4
N SQL-Statement Auslesen des Resultset wird immer langsamer Datenbankprogrammierung 6
R MS-Access mit JAva auslesen Datenbankprogrammierung 7
2 MySQL Daten aus einer Array auslesen und MySQL Statment erstellen. Datenbankprogrammierung 5
E Tabellen nacheinander auslesen Datenbankprogrammierung 10
N HSQLDB Daten Auslesen Datenbankprogrammierung 3
E Werte auslesen Datenbankprogrammierung 3
O Metadaten / DatenbankAttribute Auslesen Datenbankprogrammierung 4
D Alle Werte aus DB auslesen und in Chart darstellen Datenbankprogrammierung 6
Ollek Auslesen DatenbanktabelleDatei iSeries Datenbankprogrammierung 10
C H2 Letzten Eintrag auslesen Datenbankprogrammierung 6
D MySQL Bild aus DB auslesen und auf FTP Speichern Datenbankprogrammierung 7
N Oracle txt. Datei auslesen-> verändern-> einlesen Datenbankprogrammierung 7
M JPA - Datenbanktabellen auslesen Datenbankprogrammierung 14
F NUR 3 datensätze auslesen Datenbankprogrammierung 6
M Datenbank (MySQL) auslesen Datenbankprogrammierung 3
S MySQL Datenbank auslesen - Treiberproblem Datenbankprogrammierung 12
F MySQL SSH Datenbank auslesen Datenbankprogrammierung 3
S Verschiedene Informationen gleichen Typs speichern und auslesen Datenbankprogrammierung 4
A PostgreSQL anfängerfrage: resultset zeilenweise auslesen Datenbankprogrammierung 2
D Hibernate: ArrayList in DB speichern und auslesen Datenbankprogrammierung 4
S Werte aus Datenbank auslesen und in eine bestimmte Excelzelle eintragen Datenbankprogrammierung 2
B String aus txtDatei auslesen und in Datenbank schreiben. Datenbankprogrammierung 8
B häppchenweises auslesen "lazy loading" von Datenbank Datenbankprogrammierung 13
D Csv auslesen und in mysql db schreiben Datenbankprogrammierung 9
K PostgreSQL PDF-Dateien in Datenbank speichern und auslesen Datenbankprogrammierung 4
E Datenbank auslesen mit JAVA Datenbankprogrammierung 2
W MySQL Datenbanken auslesen Datenbankprogrammierung 3
H DB auslesen (Hibernate, Query, Parameter) Datenbankprogrammierung 8
J Tabelle auslesen- knifflig Datenbankprogrammierung 7
W bestimmte Zeile mit bestimmter Spalte auslesen Datenbankprogrammierung 11
Plastagen DBC Dateien korrekt auslesen Datenbankprogrammierung 2
O vernümpftig Datumsangabe in mySQL DB speichern und auslesen Datenbankprogrammierung 4
M Derby insert, ID auslesen Datenbankprogrammierung 3
S Java objekt in MYSQL auslesen Datenbankprogrammierung 32
R Update Time auslesen Datenbankprogrammierung 2
A Datenbankanbindung an mySQL und Ein-/Auslesen der Daten Datenbankprogrammierung 4
MQue speziell Auslesen aus Datenbank Datenbankprogrammierung 5
Antoras Passwort aus DB auslesen Datenbankprogrammierung 12
V tabellenName aus den Metadaten auslesen Datenbankprogrammierung 4
L primärschlüssel auslesen Datenbankprogrammierung 6
G Bild aus als OLE-Typ aus MS Acces auslesen Datenbankprogrammierung 3
G Namen der Datebank aus einer Connction auslesen Datenbankprogrammierung 3
S Fehler beim Auslesen von Daten Datenbankprogrammierung 6
S ResultSet variabel auslesen Datenbankprogrammierung 4
G Daten schneller aus einer DB auslesen Datenbankprogrammierung 9
T Metadaten Auslesen Datenbankprogrammierung 7
B Spaltennamen von MySQL Datenbank nach Java auslesen Datenbankprogrammierung 10

Ähnliche Java Themen

Neue Themen


Oben