Я создал программное обеспечение, использующее netbeans. теперь я хочу добавить фотографии в свою базу данных. Я создал таблицу и изменил тип как «BLOB». Но, IDK, как закодировать в java, чтобы это сделать. с этим, я получаю изображение и устанавливаю его в jLabel. сейчас как сохранить эту фотографию в mysql?Как добавить фотографию в mysql из java?
try {
lbl_imge1.setIcon(null);
jFileChooser1.showOpenDialog(this);
BufferedImage upload = ImageIO.read(jFileChooser1.getSelectedFile());
java.awt.Image photo = upload.getScaledInstance(lbl_imge1.getWidth(), lbl_imge1.getHeight(), java.awt.Image.SCALE_SMOOTH);
lbl_imge1.setIcon(new ImageIcon(photo));
} catch (Exception e) {
e.printStackTrace();
}
Теперь я здесь,
try {
jLabel1.setIcon(null);
jFileChooser1.showOpenDialog(this);
BufferedImage upload = ImageIO.read(jFileChooser1.getSelectedFile());
java.awt.Image photo = upload.getScaledInstance(jLabel1.getWidth(), jLabel1.getHeight(), java.awt.Image.SCALE_SMOOTH);
jLabel1.setIcon(new ImageIcon(photo));
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/crazy", "root", "123");
BufferedImage buffered = ImageIO.read(jFileChooser1.getSelectedFile());
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(buffered, "jpg", baos);
byte[] imageInByte = baos.toByteArray();
Blob blob = con.createBlob();
blob.setBytes(1, imageInByte);
String query="INSERT INTO image VALUES ('"+jTextField1.getText()+"','"+blob+"')";
PreparedStatement statement=con.prepareStatement(query);
Можете ли вы описать 3-й шаг? что такое «соединение»? netbeans дает мне ошибки. – user271865
Является ли ваше соединение с базой данных! IE: «Connection connection = DriverManager.getConnection (« jdbc: mysql: // localhost: 3306/test »,« root »,« root »);« Я обновил ответ;) –
Это зависит от того, как вы управляете отношением btw ваши сущности и база данных ... есть ли у вас 'Hibernate Mappings' с' EntityManager'? возможно, для вас достаточно простого запроса «HQL», делайте это так же, как и в других случаях ... Если нет, 'PreparedStatement', как было предложено в ответ ...' String query = "insert into table (..... .) "; PreparedStatement ps = connection.prepareStatement (query); ' –