[RESOLVIDO] Duvida ao gerar um dump do Mysql via codigo utilizando o mysqldump

Boa tarde pessoal,

eu estou criando um método no qual eu possa gerar um dump de um determinado banco para posteriormente eu possa carregar esse dump.

Isso tudo é via aplicação, ou seja, não se utiliza nenhuma ide de banco de dados, nem o command do windows.

então eu fiz o seguinte método:

public void gerarBackup(Obra obra) {

		SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy");

		String data = formatador.format(new Date());

		data = data.replace("/", "");

		String comando = "cmd.exe /c mysqldump -u root --password=root --quick -c -t -e db_teste usuario "
				+ "tipo_veiculo tipo_material combustivel cidade bairro estado cliente proprietario "
				+ "fornecedor contratado motorista obra jazida modelo marca veiculos ficha abastecimento horimetro "
				+ "> c:\\backup_"+obra.getLocal()+"_"+ data + ".sql";

		try {
			Runtime.getRuntime().exec(comando);
		} catch (IOException e) {
			e.printStackTrace();
		}

	}

Bom, então onde está a minha dúvida.

A minha dúvida é saber se existe dentro do comando mysqldump uma forma da qual eu possa setar no arquivo a ser gerado o "USE DB" para
ele já executar o banco ao qual ele vai jogar os INSERTS.
E um outra coisa, como eu faço para que, se um dos dados forem repetidos,
ele continuar lendo a linha de comando. e pulando apenas o insert que se repetiu.
Ou seja, vai ter lá um insert qualquer, e pode ocorrer de duplicar o ID, então eu gostaria que ele ao invés de parar o comando, ele pulasse
o insert que ele verificou que estava dando conflito e continuasse o comando até o fim.

Alguém saberia me ajudar ???

Descobri pessoal,

basta colocar o atributo -f, de acordo com a descrição abaixo:

-f, --force, 
Continua ainda que se produza um erro de SQL durante a cópia. 

e assim fica meu método:


public void gerarBackup(Obra obra) {  
  
        SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy");  
  
        String data = formatador.format(new Date());  
  
        data = data.replace("/", "");  
  
        String comando = "cmd.exe /c mysqldump -u root --password=root --quick -c -t -e -f db_teste usuario "  
                + "tipo_veiculo tipo_material combustivel cidade bairro estado cliente proprietario "  
                + "fornecedor contratado motorista obra jazida modelo marca veiculos ficha abastecimento horimetro "  
                + "> c:\\backup_"+obra.getLocal()+"_"+ data + ".sql";  
  
        try {  
            Runtime.getRuntime().exec(comando);  
        } catch (IOException e) {  
            e.printStackTrace();  
        }  
  
    }