Estou com problemas no meu projeto.
Minha Classe possui um método para pegar os registros do banco de dados e colocá-los numa JTable, assim como um método para inserir dados no bd, e deletar registros nesse bd.
Num momento, insere, noutro não. Outra vez consigo deletar, outra não.
Que @#$*! pode estar acontecendo? O fato de todos os métodos pertencerem a uma única classe pode estar dando conflito?
Bom, verifique se vc tá fazendo o commit da transeção, se caso desabilitou… mas poste o codigo pra gente poder dar uma olhada… assim sem informação fica sinistro te ajudar…
N
NewbieJavaPJ
Está aqui o código:
importjavax.swing.*;importjavax.swing.table.*;importjava.util.*;importjava.sql.*;importjava.awt.*;importjava.awt.event.*;publicclassTelaPrincipalimplementsActionListener{JFramejanela=newJFrame("Tela Principal.");JMenuBarbarraMenu=newJMenuBar();JMenuarquivoMenu=newJMenu("Arquivo");JMenuIteminsereMenu=newJMenuItem("Inserir Registro");JMenuItemsaiMenu=newJMenuItem("Sair");JTabletabela;JScrollPanepainelScroll;DefaultTableModelmodeloTabela;VectornomeColunas=newVector();Vectordados=newVector();publicTelaPrincipal(){janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);janela.setExtendedState(JFrame.MAXIMIZED_BOTH);janela.setResizable(false);janela.setLayout(newFlowLayout());janela.setJMenuBar(barraMenu);barraMenu.add(arquivoMenu);arquivoMenu.add(insereMenu);arquivoMenu.addSeparator();arquivoMenu.add(saiMenu);insereMenu.addActionListener(this);saiMenu.addActionListener(this);this.exibirRegistros();}publicvoidexibirRegistros(){try{Stringdriver="org.hsqldb.jdbcDriver";Stringurl="jdbc:hsqldb:file:./db/database";Stringpassword="";StringsqlSelect="SELECT * FROM CLIENTES";Class.forName(driver);Connectionconexao=DriverManager.getConnection(url,userId,password);StatementsqlStatement=conexao.createStatement();ResultSetresultado=sqlStatement.executeQuery(sqlSelect);ResultSetMetaDatarsmd=resultado.getMetaData();intcolunas=rsmd.getColumnCount();for(inti=1;i<=colunas;i++)nomeColunas.addElement(rsmd.getColumnName(i));while(resultado.next()){Vectortupla=newVector(colunas);for(inti=1;i<=colunas;i++)tupla.addElement(resultado.getObject(i));dados.addElement(tupla);}sqlStatement.close();resultado.close();}catch(ClassNotFoundExceptioncnfe){cnfe.printStackTrace();}catch(SQLExceptionsqle){sqle.printStackTrace();}modeloTabela=newDefaultTableModel(dados,nomeColunas);tabela=newJTable(modeloTabela);painelScroll=newJScrollPane(tabela);janela.getContentPane().add(painelScroll);tabela.setEnabled(false);janela.setVisible(true);}publicvoidadicionarRegistro(){try{Stringdriver="org.hsqldb.jdbcDriver";Stringurl="jdbc:hsqldb:file:./db/database";StringuserId="sa";Stringpassword="";StringsqlInsert="INSERT INTO CLIENTES VALUES (?, ?, ?)";Class.forName(driver);Connectionconnection=DriverManager.getConnection(url,userId,password);Stringid=JOptionPane.showInputDialog(null,"Digite a ID do cliente:","ID",3);Stringnome=JOptionPane.showInputDialog(null,"Digite o NOME do cliente:","NOME",3);Stringfone=JOptionPane.showInputDialog(null,"Digite o TELEFONE do cliente:","TELEFONE",3);intidInt=Integer.parseInt(id);StringnomeString=nome.toUpperCase();intfoneInt=Integer.parseInt(fone);PreparedStatementpstm=connection.prepareStatement(sqlInsert);pstm.setInt(1,idInt);pstm.setString(2,nomeString);pstm.setInt(3,foneInt);intinseriu=pstm.executeUpdate();if(inseriu!=1){JOptionPane.showMessageDialog(null,"Não foi possível inserir o registro! Verifique os valores inseridos.","Resultado da inserção do registro",3);}else{connection.commit();modeloTabela.addRow(newObject[]{idInt,nomeString,foneInt});JOptionPane.showMessageDialog(null,"Registro inserido com sucesso!","Resultado da inserção do registro",1);}pstm.close();connection.close();}// Fim try { catch(ClassNotFoundExceptioncnfe){cnfe.printStackTrace();System.out.println(cnfe.toString());}catch(SQLExceptionsqle){sqle.printStackTrace();System.out.println(sqle.toString());JOptionPane.showMessageDialog(null,"Não foi possível inserir o registro! Verifique os valores inseridos.","Resultado da inserção do registro",3);}}publicvoiddeletarRegistro(){try{Stringdriver="org.hsqldb.jdbcDriver";Stringurl="jdbc:hsqldb:file:./db/database";StringuserId="sa";Stringpassword="";StringsqlDelete="DELETE * FROM CLIENTES WHERE ID_CLIENTE = ?)";Class.forName(driver);Connectionconnection=DriverManager.getConnection(url,userId,password);Stringid=JOptionPane.showInputDialog(null,"Digite a ID do cliente a ser deletado:","ID",3);intidInt=Integer.parseInt(id);PreparedStatementpstm=connection.prepareStatement(sqlDelete);pstm.setInt(1,idInt);intdeletou=pstm.executeUpdate();if(deletou!=1){JOptionPane.showMessageDialog(null,"Não foi possível deletar o registro! Verifique ID digitada.","Resultado.",3);}else{connection.commit();JOptionPane.showMessageDialog(null,"Registro deletado!","Resultado.",1);}pstm.close();connection.close();}// Fim try { catch(ClassNotFoundExceptioncnfe){cnfe.printStackTrace();System.out.println(cnfe.toString());}catch(SQLExceptionsqle){sqle.printStackTrace();System.out.println(sqle.toString());}}publicvoidactionPerformed(ActionEventae){Objectobj=ae.getSource();if(obj==insereMenu)this.adicionarRegistro();if(obj==saiMenu)System.exit(0);}publicstaticvoidmain(String[]args){TelaPrincipaltp=newTelaPrincipal();}}