Hallo,
ich habe folgende Frage
Für eine Datenbank habe ich das Objekt Foto
Das wird dann in einer DAO Klasse mit der Methode beim Speichern in der Datenbank wie folgt verarbeitet:
Ich verwende in der DAO zum Speichern der Daten die Methode setBinaryStream(FileInputStream). Nun habe ich aber das Problem, wenn ich die Daten aus der Datenbank lesen möchte. Dort bekomme ich die Daten aus der Datenbank mit der Methode getBinaryStream() vom ResultSet. Wie wandle ich diesen Stream aber in einen FileInputStream um um ihn dann wieder in mein Fotoobjekt zu speichern?
Gruß niesel
ich habe folgende Frage
Für eine Datenbank habe ich das Objekt Foto
Java:
public class Foto{
private String dateiName;
private FileInputStream datas;
public FileInputStream getDatas() {
return datas;
}
public void setDatas(FileInputStream datas) {
this.datas = datas;
}
public String getDateiName() {
return dateiName;
}
public void setDateiName(String dateiName) {
this.dateiName = dateiName;
}
}
Das wird dann in einer DAO Klasse mit der Methode beim Speichern in der Datenbank wie folgt verarbeitet:
Java:
public void addFoto(Foto foto, int id) throws SQLException, ClassNotFoundException {
PreparedStatement stmt = null;
conn = AllowConnect.driver(this.user, this.password, this.dburl, this.className);
if (conn != null) {
int anDok = 0;
java.util.Date dt = new Date();
Statement query;
query = conn.createStatement();
String sql = "SELECT `andokument`.`DOK-ID` FROM `andokument`";
ResultSet result = query.executeQuery(sql);
while (result.next()) {
anDok = result.getInt("DOK-ID"); // Alternativ: result.getString(1);
System.out.println("anDok=" + anDok);
}
if (anDok == 0) {
stmt = conn.prepareStatement("INSERT INTO `andokument` ( "
+ " `andokument`.`name`, "
+ "`andokument`.`data`, "
+ "`andokument`.`AN-DOK-ID`)"
+ "VALUES (?,?,?)");
stmt.setString(1, foto.getDateiName());
stmt.setBinaryStream(2, foto.getDatas());
stmt.setInt(3, foto.getpId());
stmt.executeUpdate();
} else {
stmt = conn.prepareStatement("UPDATE `andokument` SET "
+ "`andokument`.`name`= ?,"
+ "`andokument`.`data`= ? "
+ "WHERE `DOK-ID`= ?");
stmt.setString(1, foto.getDateiName());
stmt.setBinaryStream(2, foto.getDatas());
stmt.setInt(3, anDok);
stmt.executeUpdate();
}
}
conn.close();
Ich verwende in der DAO zum Speichern der Daten die Methode setBinaryStream(FileInputStream). Nun habe ich aber das Problem, wenn ich die Daten aus der Datenbank lesen möchte. Dort bekomme ich die Daten aus der Datenbank mit der Methode getBinaryStream() vom ResultSet. Wie wandle ich diesen Stream aber in einen FileInputStream um um ihn dann wieder in mein Fotoobjekt zu speichern?
Gruß niesel