Java Swing 응용 프로그램에서 MySQL 데이터베이스에 이미지를 저장하려고합니다. JFileChsoser를 사용하여 이미지의 경로를 얻습니다. 그런 다음 파일을 변환하여 BLOB 유형 인 MySQL 열에 저장할 수 있습니다. 그러나 저장하려고하는 모든 이미지가 제대로 저장되지 않거나 제대로 변환되지 않습니다. 누군가 내가 여기서 잘못하고있는 걸 말해 줄 수 있니?Java에서 MySQL에 이미지 저장
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);
}
}
나는 당신은 당신의 SQL 문에서 문자열로 바이트 []를 변환하는 글로벌 변수
String path=null;
byte[] userimage=null;
그것은 MySQL 데이터베이스에 BLOB로 저장 이미지에 좋은 방법이 아닙니다. 먼저 파일 (이 경우 이미지)을 응용 프로그램 폴더에 복사 한 다음 이미지 대신 BLOB로 데이터베이스에 이미지의 경로를 저장해야합니다. – dzeno
DB에 이미지를 저장하지 마십시오. 대신 폴더에 저장하고 경로를 DB에 저장하십시오. – Amarnath
@dzeno 나는 대학을위한 프로젝트를하고있다. 그리고 내가 방금 말한 것과 정확히 똑같이 했어. 그러나 마음의 친구는 MySQL 데이터베이스에 이미지를 저장하는 데 절대적인 입장입니다. 그래서 그녀를 돕는 것뿐이었습니다. –