Barra de Progresso

2 respostas
E

Gostaria que durante a realização do meu backup fosse mostrada uma barra de progresso.
Já tentei fazer para esse código de backp aí abaixo e p inicialização dos programas(como no (netbens por exemplo).
Tem alguns exmplos aqui no guj, mas não consegui.

meu banco mysql possui 10 tabelas.

agradeço!!

String novonome = null;
            int numerodobackup = 0;
            
            File diretorio = new File("C:/teste1");
            File bck = new File("C:/teste1/almoxarifado.sql");
            
       
            if(!diretorio.isDirectory()) {
              new File("C:/teste1").mkdir();
             
            } else {  
            }
            
            // Cria Arquivo de Backup
            try {
                if(!bck.isFile()) {
                    
                    
                        String comando="C:\Arquivos de programas\MySQL\MySQL Server 5.0\bin\mysqldump.exe";   
                        ProcessBuilder pb=new ProcessBuilder(comando,"--user=root","--password=adm","almoxarifado","--result-file=C:\teste1\almoxarifado.sql");   
                        pb.start(); 
                        JOptionPane.showMessageDialog(this, "Cópia de segurança realizada com sucesso");
               
                } else {
                    while(bck.isFile()) {
                        numerodobackup ++;
                   
                        bck = new File("C:/teste1/almoxarifado"+numerodobackup+".sql");
                        novonome= String.valueOf(bck);
                         
                        }

                            String comando="C:\Arquivos de programas\MySQL\MySQL Server 5.0\bin\mysqldump.exe";   
                            ProcessBuilder pb=new ProcessBuilder(comando,"--user=root","--password=adm","almoxarifado","--result-file="+novonome);   
                            pb.start(); 
                            JOptionPane.showMessageDialog(this, "Cópia de segurança realizada com sucesso!");
                }
                } catch (IOException ex) {
                ex.printStackTrace();
                JOptionPane.showMessageDialog(this, "Copia de segurança não realizada!");
                }

2 Respostas

M

Nesse caso você tem um problema: não há como saber o progresso do backup pois um único processo realiza o backup das 10 tabelas (e esse processo não dá informação alguma de progresso).

Possíveis soluções:

  1. Fazer o backup de cada tabela separadamente (vide documentação do mysqldump).

  2. Usar a opção -v (verbose) e pegar o InputStream do processo, aplicando regex para ver onde o processo está (use um Scanner, pois a saída de verbose mostra uma informação como: “-- Retrieving table structure for table X…” para cada tabela que percorre).

edufera10

Da uma olhadinha neste projetinho, é bem modesto mais pode abrir caminhos para mais pesquisas.

Use netBeans

http://www.megaupload.com/?d=NJVNQX0V

Criado 16 de janeiro de 2010
Ultima resposta 17 de jan. de 2010
Respostas 2
Participantes 3