E
EllaStar
Gast
Hallo Leute,
ich habe ein total verzwicktes Problem und bin jetzt am Ende meiner Kenntnisse (die sowieso eher begrenzt sind was JAVA angeht).
Und zwar ist das Problem, dass der Nutzer über einen FileChooser ein Bild auswählen soll.
Dieses wird dann auch dank des ImageIcons im Fenster angezeigt. Allerdings möchte ich das ausgewählte Bild gleichzeitig auch mittels BLOB noch in die MySQL Datenbank speichern. Das bloße speichern wäre jetzt auch nicht das Problem, allerdings weiß ich im Moment nicht, ob ich a) das ImageIcon in der DB speichern kann b) Wie ich den Inhalt des ImageIcons an die Methode übergeben soll, die das Bild in der DB speichert?
Methode zum auswählen und anzeigen des Bilds:
Methode zum Schreiben:
Dankeschön!
ich habe ein total verzwicktes Problem und bin jetzt am Ende meiner Kenntnisse (die sowieso eher begrenzt sind was JAVA angeht).
Und zwar ist das Problem, dass der Nutzer über einen FileChooser ein Bild auswählen soll.
Dieses wird dann auch dank des ImageIcons im Fenster angezeigt. Allerdings möchte ich das ausgewählte Bild gleichzeitig auch mittels BLOB noch in die MySQL Datenbank speichern. Das bloße speichern wäre jetzt auch nicht das Problem, allerdings weiß ich im Moment nicht, ob ich a) das ImageIcon in der DB speichern kann b) Wie ich den Inhalt des ImageIcons an die Methode übergeben soll, die das Bild in der DB speichert?
Methode zum auswählen und anzeigen des Bilds:
Java:
protected void BildSuchen() {
JFileChooser fc = new JFileChooser();
FileFilter filter = new FileNameExtensionFilter("Bilder", "gif", "png",
"jpg");
fc.setAcceptAllFileFilterUsed(false);
fc.setFileFilter(filter);
fc.showOpenDialog(null);
File f = fc.getSelectedFile();
Image image = java.awt.Toolkit.getDefaultToolkit().getImage(
f.getAbsolutePath());
ImageIcon ic = new ImageIcon(image);
ic.setImage(ic.getImage().getScaledInstance(212, 148,
Image.SCALE_SMOOTH));
lblbild.setIcon(ic);
try {
bildindb();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Java:
protected void bildindb() throws ClassNotFoundException, SQLException, IOException {
Class.forName("com.mysql.jdbc.Driver");
final String CONNECTION = "jdbc:mysql:.....";
Connection connection = DriverManager.getConnection(
CONNECTION, "....", "...");
String INSERT_PICTURE = "insert into ... (Bild) values";
FileInputStream fis = null;
PreparedStatement ps = null;
try {
connection.setAutoCommit(false);
File file = new File("");
fis = new FileInputStream(file);
ps = connection.prepareStatement(INSERT_PICTURE);
ps.setString(1, "001");
ps.setString(2, "name");
ps.setBinaryStream(3, fis, (int) file.length());
ps.executeUpdate();
connection.commit();
} finally {
ps.close();
fis.close();
}
}