Ciao a tutti. Ho realizzato un software che effettua una sorta di catalogazione dei file scelti. Praticamente salva all'interno di un DB, in MySQL, la lista delle varie informazioni dei file scelti. Attenzione...non vengono salvati i file, ma solo le informazioni quali nome, dimensione, ecc...
Ho lanciato una catalogazione di 34680 file e ci ha messo a scriverli sul DB ben 14 minuti.
Premetto che il software è in Java e il DB è in MySQL e utilizzo l'ultimo driver mysql-connector-java-5.1.17. Vi posto inoltre i metodi principali per eseguire la query:

Per connettermi in una classe ho inserito questo metodo:

codice:
private Boolean Connessione(){ 
        XML xml = new XML();
        xml.getXML();
        connesso=false;
        try{
            Class.forName("com.mysql.jdbc.Driver");
            
            connessioneDB = DriverManager.getConnection("jdbc:mysql://"
                    + xml.parametriConnessioneDB[0] + ":" 
                    + xml.parametriConnessioneDB[1] + "/" 
                    + xml.parametriConnessioneDB[2]                      
                    + "?user=" + xml.parametriConnessioneDB[3]
                    + "&password=" + xml.parametriConnessioneDB[4]);
            
            connesso=true;
            
        }catch(Exception exc){            
            frmConfiguraConnessione frame = new frmConfiguraConnessione();
            frame.setVisible(true);            
        }
        return connesso;
    }
Fin qui tutto apposto e per lavorare sul DB invio questa query:

codice:
for(int i = 0; i <arraySize; i++){
                            
     convertiNomeFilePerSQL = listaFile[i].getName();
     convertiPathPerSQL = listaFile[i].getParent();
     db.EseguiSQL("INSERT INTO precatalogati "
            + "(nomefile, tipofile, "
            + "dimensionefile, tiposupporto, nomesupporto, "
            + "datacatalogazione, path) VALUES "
            + "('" + convertiNomeFilePerSQL.replaceAll("'", "''") + "', "
            + "'" + getExtension(listaFile[i]) + "', " 
            + "" + listaFile[i].length() + ", "
            + "'" + cmbTipoSupporto.getSelectedItem() + "', "
            + "'" + txtNomeSupporto.getText() + "', "
            + "'" + txtDataCatalogazione.getText() + "', "
            + "'" + convertiPathPerSQL.replaceAll("'", "''") + "');"); 
}
Che viene data in pasto al metodo presente sempre dentro la classe dove effettuo la connessione al DB:

codice:
public void EseguiSQL(String sql){        
        try{            
            PreparedStatement ps = connessioneDB.prepareStatement(sql);                        
            ps.executeUpdate();
            ps.close(); 
            
        }catch(SQLException exc){
            JOptionPane.showMessageDialog(null, exc.getMessage().toString(),
            "Errore!", JOptionPane.ERROR_MESSAGE);
        }        
    }
Premetto che il programma funziona alla perfezione, ma purtroppo ha questo enorme inconveniente relativo alla velocità di esecuzione delle query. Potreste aiutarmi? Grazie.