Erro sql udade

CREATE TABLE CATEGORIA 
( 
ID INTEGER IDENTITY NOT NULL, 
CATEG VARCHAR(100) NULL, 
NOME VARCHAR(100) NULL, 
CONSTRAINT PK_CATEGORIA PRIMARY KEY(ID) 
) 

CLASSE DAO

public void gravaDados(Categoria categoria)throws Erro{ 
try{ 
String grava = "INSERT INTO CATEGORIA (CATEG, NOME) VALUES (?,?)"; 
PreparedStatement pre = con.prepareStatement(grava); 
// pre.setInt(1, categoria.getCodigo()); 
pre.setString(1, categoria.getCategoria()); 
pre.setString(2, categoria.getNome()); 
pre.executeUpdate(); 
} 
catch(SQLException e){ 
throw new Erro("ERRO INSERIR",e); 
} 
} 
public void excluiDados(Categoria categoria)throws Erro{ 
try{ 
String excluir = "DELETE FROM CATEGORIA WHERE ID = ?"; 
PreparedStatement pre = con.prepareStatement(excluir); 
pre.setInt(1, categoria.getCodigo()); 
pre.executeUpdate(); 
} 
catch(SQLException e){ 
throw new Erro("ERRO EXCLUIR"); 
} 
} 
public void atualizaDados(Categoria categoria)throws Erro{ 
try{ 
String troca = "UPDATE CATEGORIA SET ID=?, NOME=? WHERE CATEG=?"; 
PreparedStatement pre = con.prepareStatement(troca); 
pre.setInt(1, categoria.getCodigo()); 
pre.setString(2, categoria.getNome()); 
pre.setString(3, categoria.getCategoria()); 
pre.executeUpdate(); 
} 
catch(SQLException e){ 
throw new Erro("ERRO ATUALIZAR"); 
} 
} 

GUI

GRAVE: null
exceptions.Erro: ERRO EXCLUIR
at persistence.DaoCategoria.excluiDados(DaoCategoria.java:55)
at gui.CadastroCategoria.ExcluirActionPerformed(CadastroCategoria.java:135)
at gui.CadastroCategoria.access$100(CadastroCategoria.java:12)
at gui.CadastroCategoria$2.actionPerformed(CadastroCategoria.java:46)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:231
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6267)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6032)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:423
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:416
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:247
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

agora fica mais facil a interpretação do codigo! kkkkkkkkkkk
referente ao insert realmente tinhha erro na linha comentada, não precisa passar o ID, pois o mesmo é auto-incremmet, agora no excluir não consegui achar erro nem de sintaxe muito menos de lógica, mais pelo log de erro informado, a unica coisa que vem a mente é saber se o objeto “Categoria que você está passando não esta NULL”, pois pelo erro parece que o objeto passado por parametro não está populado, ou o atributo ID está sem popular, ou seja = NULL!

espero ter ajudado!

por favor remova o tópico antigo!

Com o código q vc postou não da pra ter certeza o que tem na linha 55, mas acredito
que seja a

do método excluiDados.
Se realmente for ela pode ser que o objeto categoria ou o atributo Codigo esteja nulo

pode ser a propria criação do banco de dados que naum está como o combinado no codigo

vc jah uso o debbuger? se naum pesquise sobre o assunto e veja o q acontece…

NETBEANS 6.9

[quote=RafaelCassau]agora fica mais facil a interpretação do codigo! kkkkkkkkkkk
referente ao insert realmente tinhha erro na linha comentada, não precisa passar o ID, pois o mesmo é auto-incremmet, agora no excluir não consegui achar erro nem de sintaxe muito menos de lógica, mais pelo log de erro informado, a unica coisa que vem a mente é saber se o objeto “Categoria que você está passando não esta NULL”, pois pelo erro parece que o objeto passado por parametro não está populado, ou o atributo ID está sem popular, ou seja = NULL!

espero ter ajudado!

[/quote]

como assim" excluir não consegui achar"

aki no metodo excluir

public void excluiDados(Categoria categoria)throws Erro{   
try{   
String excluir = "DELETE FROM CATEGORIA WHERE ID = ?";   
PreparedStatement pre = con.prepareStatement(excluir);   
pre.setInt(1, categoria.getCodigo());   // ACHO QUE O OBJETO CATEGORIA ESTA NULL, OU DEVE TER ALGUM ATRIBUTO SEM POPULAR, PROVAVELMENTE O ID!!!
pre.executeUpdate();   
}   
catch(SQLException e){   
throw new Erro("ERRO EXCLUIR");   
}   
}   

posta o metodo onde o objeto categoria é populado e onde ele e passado por parametro antes dde executar a exclusão para que eu possa analizar?

CLASSE GUI

private model.Categoria getCategoria() throws ClassNotFoundException, SQLException, Erro{
        java.sql.ResultSet res = conexaoCampeonato.acessaDados("SELECT ID, CATEG, NOME FROM CATEGORIA WHERE CATEGORIA.CATEG ="+"'"+this.Categoria.getText()+"'");
        model.Categoria get = null;
        while(res.next()){            
           return get =  new model.Categoria(res.getInt(1), res.getString(2), res.getString(3));
        }
        javax.swing.JOptionPane.showConfirmDialog(null,"NAO ENCONTRARAM" , this.getTitle() , javax.swing.JOptionPane.PLAIN_MESSAGE);
        return get;
    }

private void ExcluirActionPerformed(java.awt.event.ActionEvent evt) {                                        
        try {
            this.conexaoCategoria.excluiDado(this.getCategoria());
            this.Limpar();
        } catch (Erro ex) {
            Logger.getLogger(CadastroCategoria.class.getName()).log(Level.SEVERE, null, ex);
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(CadastroProva.class.getName()).log(Level.SEVERE, null, ex);
        } catch (SQLException ex) {
            Logger.getLogger(CadastroProva.class.getName()).log(Level.SEVERE, null, ex);
        }
}

aki você ta passando o objeto CATEGORIA populado, ou seja com todos os seus valores atribuidos
e o nome do metodo é excluiDados certo?

public void excluiDados(Categoria categoria)throws Erro{   // ou seja o nome do metodo a ser chamado é excluiDados
try{   
String excluir = "DELETE FROM CATEGORIA WHERE ID = ?";   
PreparedStatement pre = con.prepareStatement(excluir);   
pre.setInt(1, categoria.getCodigo());   
pre.executeUpdate();   
}   

E esse metodo abaixo é onde você passa o objeto categoria populado para o metodo excluiDados, mais o nome do metodo chamado é excluiDado, ou seja esta faltando um ‘S’

private void ExcluirActionPerformed(java.awt.event.ActionEvent evt) {  
        try {  
            this.conexaoCategoria.excluiDado(this.getCategoria());  // só que você esta chamando excluiDado cade o 's'?
            this.Limpar();  
        } catch (Erro ex) {  
            Logger.getLogger(CadastroCategoria.class.getName()).log(Level.SEVERE, null, ex);  
        } catch (ClassNotFoundException ex) {  
            Logger.getLogger(CadastroProva.class.getName()).log(Level.SEVERE, null, ex);  
        } catch (SQLException ex) {  
            Logger.getLogger(CadastroProva.class.getName()).log(Level.SEVERE, null, ex);  
        }  
}  

Amigo vamos testar uma coisa veja o q fiz e faca igual e rode:

public void excluiDados(Categoria categoria)throws Erro{ if (categoria.getCodigo() != null && categoria.getCodigo() > 0) { try{ String excluir = "DELETE FROM CATEGORIA WHERE ID = ?"; PreparedStatement pre = con.prepareStatement(excluir); pre.setInt(1, categoria.getCodigo()); pre.executeUpdate(); } catch(SQLException e){ throw new Erro("ERRO EXCLUIR"); } } else System.out.println("O codigo da categoria esta NULO ou VAZIO !!!"); }

se aparecer a mensagem quer dizer q o o codigo da categoria estah com problemas, ok?

OK JA ARRUMEI MAS MESMA COISA…

posta esse metodo

at persistence.DaoCategoria.excluiDados(DaoCategoria.java:55) 

public class DaoCategoria

public void excluiDado(Categoria categoria)throws Erro{
        try{
            String excluir = "DELETE FROM CATEGORIA WHERE CATEGORIA.ID =?";
            PreparedStatement pre = con.prepareStatement(excluir);
            pre.setInt(1, categoria.getCodigo());
            pre.executeUpdate();
        }
        catch(SQLException e){
            throw new Erro("ERRO EXCLUIR",e);
        }
        
    }

cara os nomes dos metodos estão diferentes denovo, eles tem q ser iguais o nome desse metodo esta novamente sem ‘s’, e isso não pode, vc esta trabalhando com JDBC ou com Hibernate ou JPA?

se estiver trabalhando com JDBC puro então o correto seria:

    public void excluiDados(Categoria categoria)throws Erro{  
            try{  
                String excluir = "DELETE FROM CATEGORIA WHERE ID = ?";  
                PreparedStatement pre = con.prepareStatement(excluir);  
                pre.setInt(1, categoria.getCodigo());  
                pre.executeUpdate();  
            }  
            catch(SQLException e){  
                throw new Erro("ERRO EXCLUIR",e);  
            }  
              
        }