Je sais que nous pouvons activer la multi-sélection en utilisant fc.setMultiSelectionEnabled(true)
. Mais j'ai besoin d'un moyen d'ajouter tous les fichiers sélectionnés dans la base de données.Utilisez JFileChooser pour sélectionner plusieurs fichiers à la fois
J'ai essayé d'utiliser getFilesSelected()
mais le problème est que lorsque je tape entrez, seule la première image sélectionnée est ajoutée à la base de données.
C'est ce que je l'ai essayé,
fc.addChoosableFileFilter(new ImageFilter());
if (fc.showOpenDialog(btnBrowse) == JFileChooser.APPROVE_OPTION){
textField.setEditable(true);
img_name.setEditable(true);
textField.setText(fc.getSelectedFile().getAbsolutePath());
img_name.setText(fc.getSelectedFile().getAbsolutePath().substring(fc.getSelectedFile().getAbsolutePath().lastIndexOf("\\")+1));
String ext = fc.getSelectedFile().getAbsolutePath().substring(fc.getSelectedFile().getAbsolutePath().lastIndexOf("\\")+1);
file_ext = ext.substring(ext.indexOf('.'),(ext.length()));
String query = " insert into load_images(format,image_name,file_loc,photo,date_field) values (?,?,?,?,?)";
preparedStmt = con.prepareStatement(query);
preparedStmt.setString (1,file_ext);
preparedStmt.setString (2,img_name.getText());
preparedStmt.setString (3, textField.getText());
File f=new File(textField.getText());
int size=(int) f.length();
FileInputStream fis=new FileInputStream(f);
preparedStmt.setBinaryStream(4,fis,size);
preparedStmt.setTimestamp(5, getCurrentTimeStamp());
preparedStmt.execute();
Cela semble avoir beaucoup moins à voir avec balançoire ou 'JFileChooser' que la DB, vous pouvez essayer de le travailler dans une application de ligne de commande. premier! –
Si vous le chargez en plusieurs lignes, [téléchargez toutes les lignes en utilisant des lots] (https://stackoverflow.com/questions/6860691/using-jdbc-preparedstatement-in-a-batch) - Documentation: ['PreparedStatement. addBatch() '] (https://docs.oracle.com/javase/7/docs/api/java/sql/PreparedStatement.html#addBatch()) et [' Statement.executeBatch() '] (https://docs.oracle.com/javase/7/docs/api/java/sql/Statement.html#executeBatch()) – MT0
Astuce: Ajouter @ MT0 (ou quiconque, le '@' est important) pour * notifier * la personne d'un nouveau commentaire. –