0
fc.setMultiSelectionEnabled(true)
を使用して複数選択を有効にすることができます。しかし、選択したすべてのファイル( )をデータベースに追加する方法が必要です。JFileChooserを使用して複数のファイルを一度に選択
私はgetFilesSelected()
を使用して試してみたが、問題は、私が打ったときのみ最初に選択した画像がデータベースに追加され、を入力することです。
これは私が試したものです、
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();
は、これはDBよりもスイングや 'JFileChooser'で行うことがはるかに少ないを持っていると思われるので、あなたはそれを働いてみてくださいコマンドラインアプリで最初! –
mulripleの行にロードする場合は、[バッチを使用してすべての行をアップロードする](https://stackoverflow.com/questions/6860691/using-jdbc-preparedstatement-in-a-batch) - ドキュメント:['PreparedStatement。 addBatch() '](https://docs.oracle.com/javase/7/docs/api/java/sql/PreparedStatement.html#addBatch())および[' Statement.executeBatch() '](https: /docs.oracle.com/javase/7/docs/api/java/sql/Statement.html#executeBatch()) – MT0
ヒント:@ MT0(または誰でも '@ 'が重要です)を追加して*人に通知する*新しいコメントの –