Apagando antes de popular os campos

4 respostas
W

Olá tudo bem?

Preciso inserir os dados em uma tabela, mas antes disso preciso excluir todos os campos, como faço isso.
Obrigado!

4 Respostas

R

delete from table

adrianoseven

Você precisa inserir mas antes excluir todos os campos??? Seria uma sobrescrita dos dados? Se for, use “Update set”. :?

W

Em minha aplicação uso JSF - Spring - Hibernate

O que quero fazer é excluir todos os campos de uma tabela antes de popula-la novamente.
segue exemplo de meu codigo - Não sei o que estou errando. Obrigado pela ajuda

public String updateAnestesista() {
	deleteAllAnestesita();

	System.out.println("1");
	sysartDao = new SysartDao();
	Collection<AnestesistaSys> anestesistas = new ArrayList<AnestesistaSys>();
	System.out.println("2");
	anestesistas = sysartDao.selectAllAnestesistas();
	System.out.println(anestesistas.size());
	System.out.println("3");

	for (AnestesistaSys anest : anestesistas) {

	    boolean jaEstaCadastrado = false;
	    anestesista = new Anestesista();
	    System.out.println("4");

	    if (anestesistaDao.listPesqParamClauseWhere("obj.crmAnestesista = " + anest.getCrmAnestesista()).size() > 0) {
		System.out.println("4");
		anestesista = anestesistaDao.singlePesqParamClauseWhere("obj.crmAnestesista = "
			+ anest.getCrmAnestesista());
		jaEstaCadastrado = true;
	    }

	    if (!jaEstaCadastrado) {
		System.out.println("veio véio");

		anestesista.setCrmAnestesista(anest.getCrmAnestesista());
		anestesista.setDataPlantao(anest.getDataPlantao());
		anestesista.setEscala(anest.getEscala());
		anestesista.setSituacao(anest.getSituacao());
		anestesista.setNomeAnestesista(anest.getNomeAnestesista());

		anestesistaDao.atualizar(anestesista);
	    }

	}
	FacesContext.getCurrentInstance().addMessage(null,
		new FacesMessage(FacesMessage.SEVERITY_INFO, "Anestesitas atualizados com sucesso!!", null));
	return "update";
    }

    public void deleteAllAnestesita() {
	try {
	    Collection<Anestesista> anestesistas = new ArrayList<Anestesista>();
	    sysartDao = new SysartDao();
	    anestesistas = sysartDao.deleteAnestesista();
	    anestesista = new Anestesista();
	    for (Anestesista anest : anestesistas) {
		anestesista = anestesistaDao.singlePesqParamClauseWhere("obj.idAnestesista = "
			+ anest.getIdAnestesista());
		anestesistaDao.excluir(anestesista);

	    }
	} catch (Exception e) {
	    
	    FacesContext.getCurrentInstance().addMessage(null,
		    new FacesMessage(FacesMessage.SEVERITY_ERROR, "Erro: " + e.getMessage(), null));
	}
    }
public Collection<Anestesista> deleteAnestesista(){
	try {

	    this.sql = "delete from anestesista";
	    this.ps = conScp.prepareStatement(sql);
	    this.ps.executeUpdate();
	    return null;
	} catch (Exception ex) {
	    System.out.println(ex.getMessage());
	    return null;
	} finally {
	    SysartCon.close(con, ps, rs);
	}

    }
E

Confuso seu código, se você está utilizando hibernate, seria mais util você utilizar o método delete do Hibernate, não? Não vejo a necessidade de usar prepareStatement nesse e muito menos optar por queries nativas, se voce já estah fazendo um laço, para remover cada um dos registros, basta apenas chamar o metodo do hibernate que remove para remover os registros que estah sendo passado por parametro. E antes de vc salvar os registros vc pode optar de limpar a lista antes de salvar os dados.

Criado 26 de abril de 2010
Ultima resposta 26 de abr. de 2010
Respostas 4
Participantes 4