Boa tarde pessoal, bom na verdade é uma duvida e não um problema...
tenho meu método que insere endereços no banco, ele funciona só que tenho muitos registros que vem de um arquivo xml que devem ser carregados em sequencia e mandado para ele inseri. ai que ta, fica muito lento gostaria de saber se alguém sabe uma maneira que possa melhor meu desempenho.
Você está abrindo e fechando a conexão para cada linha que você insere no banco. Isso é que está gastando seu tempo.
Uma forma boba de você resolver esse problema é passar o Connection como um novo parâmetro para esse método, e abrir a conexão em outro lugar (não se esquecer de fechá-la depois )
importjava.sql.SQLException;importjavax.swing.JOptionPane;publicclasscorextendsConexao{publicvoidInserir(TabCort)throwsSQLException{super.conectar();Stringsqlinsert="insert into cor (descricao) values ('"+t.getDescricao()+"')";if(!super.ExecutarCrud(sqlinsert)){JOptionPane.showMessageDialog(null,"erro ao cadastrar cliente");}else{JOptionPane.showMessageDialog(null,"cadastrado com exito");}super.fechar();}}
classe que manda pro bd
importjava.sql.*;importjava.util.logging.Level;importjava.util.logging.Logger;publicclassConexao{publicConnectioncon=null;// conexãopublicStatementstm=null;// canal para execução de queryiespublicResultSetrs=null;// conexão com servidor e base de dadospublicbooleanconectar()throwsSQLException{booleanerro=true;// registrando classe e drivertry{Class.forName("org.postgresql.Driver");//driver do bd no meu caso postgres}catch(ClassNotFoundExceptionex){Logger.getLogger(Conexao.class.getName()).log(Level.SEVERE,null,ex);erro=false;ex.printStackTrace();}// realizando conexãocon=DriverManager.getConnection("jdbc:postgresql://localhost:5432/nome do bd","seu user do bd","senha do bd");// criando canal para execução de sqlstm=con.createStatement();// retorna resultado da conexãoreturnerro;}publicvoidfechar(){try{con.close();System.out.println("Conexão finalizada!");}catch(SQLExceptiononConClose){System.out.println("Houve erro ao fechar a conexão!");onConClose.printStackTrace();}}publicbooleanExecutarCrud(Stringsql)throwsSQLException{interro;erro=stm.executeUpdate(sql);//executa sqlif(erro==0){//aponta para primeiro registro da consultareturnfalse;// não há registros}else{returntrue;}}}