Я пытаюсь сохранить изображения в базе данных MySQL из приложения Java swing. Я использую JFileChsoser, чтобы получить путь к изображению. Затем после этого конвертируйте файл, чтобы он мог быть сохранен в столбце MySQL, который имеет тип BLOB. Но каждое изображение, которое я пытаюсь сохранить, не сохраняется должным образом или неправильно преобразуется. Может ли кто-нибудь сказать мне, что я делаю неправильно здесь?Сохранение изображения в MySQL из Java
private void btn_choosepicActionPerformed(java.awt.event.ActionEvent evt) {
JFileChooser picchooser = new JFileChooser();
picchooser.setDialogTitle("Select Image");
picchooser.showOpenDialog(null);
File pic=picchooser.getSelectedFile();
path= pic.getAbsolutePath();
txt_path.setText(path.replace('\\','/'));
try{
File image = new File(path);
FileInputStream fis = new FileInputStream(image);
ByteArrayOutputStream baos= new ByteArrayOutputStream();
byte[] buff = new byte[1024];
for(int readNum; (readNum=fis.read(buff)) !=-1 ;){
baos.write(buff,0,readNum);
}
userimage=baos.toByteArray();
}
catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}
И после этого Im сохраняет его в базу данных так.
private void btn_saveActionPerformed(java.awt.event.ActionEvent evt) {
String user= txt_username.getText();
try{
String sql="insert into imgtst (username,image) values ('"+user+"','"+userimage+"')";
pst=con.prepareStatement(sql);
pst.executeUpdate();
JOptionPane.showMessageDialog(null, "Saved");
}
catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}
и я объявил переменную userimage и путь в качестве глобальных переменных
String path=null;
byte[] userimage=null;
Это не очень хорошая практика, чтобы сохранить изображение как BLOB в базе данных MySQL. Сначала вы должны скопировать файл в этом случае в папку приложения, а затем просто сохранить путь к этому изображению в базе данных вместо изображения в виде BLOB. – dzeno
Не храните изображения в БД. Вместо этого поместите их в папку и сохраните путь в БД. – Amarnath
@dzeno Я делаю проект для университета. И я сделал точный способ, как вы только что сказали. Но друг ума непреклонен в сохранении изображений в базе данных MySQL. Так что она просто помогала ей. –