Excluir registro do banco

12 respostas
shenn
não estou conseguindo excluir o registro do banco de dados, fiz pelo modelo dao olha o meu dao:
public int delete(String nome) throws SQLException {   
      Statement statement = conexao.createStatement();   
      String insertComand = "DELETE FROM cadastro WHERE nome = " + nome;   
      int linhasAfetadas = statement.executeUpdate(insertComand);   
      statement.close();   
      conexao.close();   
      return linhasAfetadas;   
   }  
public int delete(String nome) throws SQLException {
      Statement statement = conexao.createStatement();
      String insertComand = "DELETE FROM cadastro WHERE nome = " + nome;
      int linhasAfetadas = statement.executeUpdate(insertComand);
      statement.close();
      conexao.close();
      return linhasAfetadas;
   }
olha a minha servlet
try {   
            
         Connection conexao = null;   
          Statement statement = conexao.createStatement();   
  
           String sql = "DELETE FROM cadastro WHERE nome = 'nome'";     
    
           int deleteCount = statement.executeUpdate(sql);     
  
           sql = "DELETE FROM cadastro WHERE nome = nome";     
           Connection connection = null;   
         PreparedStatement pstmt = connection.prepareStatement(sql);     
    
           deleteCount = pstmt.executeUpdate();    
      } catch (Exception e) {   
             System.out.println("erro2");    
      }  
   try {
         
         Connection conexao = null;
          Statement statement = conexao.createStatement();

           String sql = "DELETE FROM cadastro WHERE nome = 'nome'";  
 
           int deleteCount = statement.executeUpdate(sql);  

           sql = "DELETE FROM cadastro WHERE nome = nome";  
           Connection connection = null;
         PreparedStatement pstmt = connection.prepareStatement(sql);  
 
           deleteCount = pstmt.executeUpdate(); 
      } catch (Exception e) {
             System.out.println("erro2"); 
      }
o campo nome é uma chave primaria..

12 Respostas

otaviojava

Verifica se o nome que você quer deletar bate com o banco.
Uma boa ideia é fazer debug também,
Você pode, por exemplo, pegar a query e executar diretamente no banco para ver o que acontece.

shenn

sim os nomes estão certos da coluna, só pra saber se eu fiz certo, como eu chamo o botão excluir?

fiz isso
</form>
		<br><br>
		<form action="Excluir.jsp">
		<input type="submit" value="Excluir"/>
		</form>
quando apertar ele vai pra servlet Excluir ai executa o
try {
			
			Connection conexao = null;
			
			Statement statement = conexao.createStatement();

	        String sql = "DELETE FROM cadastro WHERE nome = 'nome'";  
 
	        int deleteCount = statement.executeUpdate(sql);  

	        sql = "DELETE FROM cadastro WHERE nome = nome"; 
	        
			PreparedStatement pstmt = conexao.prepareStatement(sql);  
			System.out.println("excluido");
	        deleteCount = pstmt.executeUpdate(); 
		} catch (Exception e) {
		       System.out.println("erro não excluido 2"); 
		}
otaviojava

ao invés de ‘=’ na condição tenta usar o like

shenn

agora apareceu

java.lang.NullPointerException

alguem sabe oq é isso?

L

referencia para um objeto com valor nulo, dai qdo tenta chamar um metodo da erro, exemplo:

String teste = null; teste.isEmpty(); // NullPointerException

abrxx

shenn

como eu dou a referencia a um botão? (não sei se é uma pergunta besta mas)

worldsoft

shenn:
agora apareceu

java.lang.NullPointerException

alguem sabe oq é isso?

Quer dizer que você tentou acessar algum objeto que não foi instanciado.

shenn

porem este objeto é um botão

worldsoft

Cara ou seu erro provavelmente está nas linhas comentadas:

try {  
              
            Connection conexao = null;  //Conexão está sendo referenciado a nulo.
              
            Statement statement = conexao.createStatement();   //Faz uma chamada a um método com o objeto conexão nulo.
  
            String sql = "DELETE FROM cadastro WHERE nome = 'nome'";    
  
            int deleteCount = statement.executeUpdate(sql);    
  
            sql = "DELETE FROM cadastro WHERE nome = nome";   
              
            PreparedStatement pstmt = conexao.prepareStatement(sql);    
            System.out.println("excluido");  
            deleteCount = pstmt.executeUpdate();   
        } catch (Exception e) {  
               System.out.println("erro não excluido 2");   
        }
shenn

como resolveria isso?

worldsoft

De uma estudada sobre JDBC, segue um link para exemplo:

http://www.guj.com.br/articles/7

L

exmeplo facil

public boolean delete(String cod){

		try { 
			con = DAOConexao.getConn(); 
			//String sql = " DELETE FROM tb_Cadastro where codigo = %s ";
			String sql = "DELETE FROM tb_Clientes where CodigoImprCliente  = '" + cod + "'";
			pstm = con.prepareStatement(sql);
			pstm.executeUpdate();

		}catch(Exception e){
			System.out.println(e.toString());
		}finally{

			try{
				//pstm.close(); 
				//con.close();
			}
			catch(Exception e){

			} 		
		} 		
		return true; 
	}
}
Criado 7 de junho de 2011
Ultima resposta 7 de jun. de 2011
Respostas 12
Participantes 4