Ich habe versucht, das Bild aus der Datenbank abzurufen und es der Klasse Person hinzuzufügen. Ich habe das Bild mit Files.copy() in eine neue Bilddatei kopiert und ein neues Image-Objekt erstellt. Aber es scheint, als ob die ganzen Prozess jedes Kopieren zunächst gestartet, so dass alle Bildobjekte haben nur ein Bild bekommen - das letzte kopierte Bild, doch kopieren() -Methode steht vor der Einstellung. Wie man es repariert?Files.copy Methode funktioniert nicht ordnungsgemäß
try {
checkConnection();
rs = con.prepareStatement("SELECT * FROM Staff").executeQuery();
while(rs.next()){
InputStream is = rs.getBinaryStream("Photo");
Files.copy(is, Paths.get("src\\ilc\\images\\image.jpg"), StandardCopyOption.REPLACE_EXISTING);
Image image = new Image("ilc/images/image.jpg", 100, 100, true, true);
Rectangle rectangle = new Rectangle();
persons.add(
new Person(rs.getString("Name"),
rs.getInt("Salary"),
rs.getDouble("Influence"),
false,
false,
false,
image)
);
}
rs.close();
}
catch (FileNotFoundException ex) {
ex.printStackTrace();
}
catch (SQLException ex) {
ex.printStackTrace();
}
catch (IOException ex) {
ex.printStackTrace();
}
warum nicht u Bild mit Input erstellen möchten, die Sie nach 'Input haben ist = rs.getBinaryStream ("Foto"); '? Sie müssten "Files.copy" überhaupt nicht verwenden. – Enigo
SIE SIND GENIUS MANN! ES KLAPPT! ICH DANKE DIR SEHR! : D –
toll, froh, es hat funktioniert. Ich habe es als Antwort gepostet, damit wir Ihre Frage schließen können.) – Enigo