Wenderson Lisboa Posted July 8, 2024 at 06:02 AM Report #633221 Posted July 8, 2024 at 06:02 AM Boa noite amigos, venho mais uma vez humildemente pedir vossa ajuda, estou implementando um pequeno projeto e esbarrei nessa dificuldade, não consigo salvar, atualizar, excluir nem limpar os campos, por favor peço que me ajudem a descobrir esse erro. De já meu muito obrigado. //Classe Menu import java.awt.EventQueue; import javax.swing.JFrame; import java.awt.Panel; import javax.swing.BoxLayout; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; import Conexao.DAOPessoas; import Conexao.Pessoas; import javax.swing.JMenuBar; import javax.swing.JOptionPane; import javax.swing.JScrollPane; import javax.swing.JTextField; import javax.swing.JButton; import java.awt.event.ActionListener; import java.util.List; import java.awt.event.ActionEvent; public class Menu { private JFrame frame; private JTable table; private JTextField txtDigiteONome; private DAOPessoas dao; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { Menu window = new Menu(); window.frame.setVisible(true); } catch (NullPointerException e) { e.printStackTrace(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); } /** * Create the application. * @throws Exception */ public Menu() throws Exception{ try { dao = new DAOPessoas(); initialize(); }catch(Exception e) { JOptionPane.showMessageDialog(null, this,"[ERRO] "+e.getMessage(), 0, null); } } /** * Initialize the contents of the frame. */ private void initialize() { frame = new JFrame(); frame.setBounds(100, 100, 600, 450); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().setLayout(new BoxLayout(frame.getContentPane(), BoxLayout.X_AXIS)); frame.setLocationRelativeTo(null); frame.setResizable(true); Panel panel = new Panel(); frame.getContentPane().add(panel); panel.setLayout(null); table = new JTable(); table.setBounds(278, 18, 0, 0); panel.add(table); JMenuBar menuBar = new JMenuBar(); frame.setJMenuBar(menuBar); JButton btnNewButton_1 = new JButton("CADASTRAR"); btnNewButton_1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e){ try { Cadastro cadastroForm = new Cadastro(); cadastroForm.setVisible(true); }catch(Exception ex) { JOptionPane.showMessageDialog(btnNewButton_1, this,"[ERRO] "+ex.getMessage(), 0, null); } } }); menuBar.add(btnNewButton_1); txtDigiteONome = new JTextField(); txtDigiteONome.setToolTipText(""); menuBar.add(txtDigiteONome); txtDigiteONome.setColumns(10); JButton btnNewButton = new JButton("BUSCAR"); btnNewButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { carregarDados(txtDigiteONome.getText()); } }); menuBar.add(btnNewButton); // JTable e JScrollPane table = new JTable(); JScrollPane scrollPane = new JScrollPane(table); scrollPane.setBounds(10, 50, 560, 300); // Ajuste as dimensões conforme necessário panel.add(scrollPane); carregarDados(""); } public void carregarDados(String nome) { List<Pessoas> lista = dao.listar(); String[] colunas = {"ID","Nome", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"}; DefaultTableModel modelo = new DefaultTableModel(colunas, 0); for (Pessoas p : lista) { if (nome.isEmpty() || p.getNome().toUpperCase().contains(nome.toUpperCase())) { Object[] linha = { p.getId(), p.getNome(), p.getAgosto(), p.getSetembro(), p.getOutubro(), p.getNovembro(), p.getDezembro() }; modelo.addRow(linha); } table.setModel(modelo); } } } //Classe Cadastro import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JTextField; import Conexao.DAOPessoas; import Conexao.Pessoas; public class Cadastro extends JFrame implements ActionListener{ /** * */ private static final long serialVersionUID = 1L; private JLabel lbID; private JTextField txtID; private JLabel lbNome; private JTextField txtNome; private JLabel lbAgosto; private JCheckBox cbAgosto; private JLabel lbSetembro; private JCheckBox cbSetembro; private JLabel lbOutubro; private JCheckBox cbOutubro; private JLabel lbNovembro; private JCheckBox cbNovembro; private JLabel lbDezembro; private JCheckBox cbDezembro; private JButton btSalvar; private JButton btAtualizar; private JButton btExcluir; private JButton btLimpar; private DAOPessoas dao; public Cadastro() throws Exception { try { dao = new DAOPessoas(); //Configuração visual da rela setTitle("Cadastro dos Esponjinhas"); setSize(350, 350); setLayout(new GridBagLayout()); setResizable(false); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setLocationRelativeTo(null); // Centraliza a janela na tela //Configurando o Layout "x" e "y" do formulário GridBagConstraints gbc = new GridBagConstraints(); Insets margens = new Insets(4,3,4,3); JLabel lbID = new JLabel("ID"); gbc.gridx = 0; gbc.gridy = 0; gbc.anchor = GridBagConstraints.WEST; // Alinha à esquerda gbc.insets = margens; add(lbID,gbc); JTextField txtID = new JTextField(2); txtID.setEnabled(false); gbc.gridx = 1; gbc.gridy = 0; gbc.fill = GridBagConstraints.HORIZONTAL; // Preenche horizontalmente gbc.insets = margens; add(txtID, gbc); JLabel lbNome = new JLabel("Nome"); gbc.gridx = 0; gbc.gridy = 1; gbc.insets = margens; add(lbNome, gbc); JTextField txtNome = new JTextField(); gbc.gridx = 0; gbc.gridy = 2; gbc.gridwidth = 3; // Ocupa duas colunas gbc.fill = GridBagConstraints.HORIZONTAL; // Preenche horizontalmente gbc.insets = margens; add(txtNome, gbc); JLabel lbAgosto = new JLabel("Agosto"); gbc.gridx = 0; gbc.gridy = 3; gbc.gridwidth = 1; // Restaura gridwidth para 1 gbc.fill = GridBagConstraints.NONE; // Restaura fill para NONE gbc.insets = margens; add(lbAgosto, gbc); JCheckBox cbAgosto = new JCheckBox(); cbAgosto.setSelected(false); gbc.gridx = 1; gbc.gridy = 3; gbc.insets = margens; add(cbAgosto, gbc); JLabel lbSetembro = new JLabel("Setembro"); gbc.gridx = 0; gbc.gridy = 4; gbc.insets = margens; add(lbSetembro, gbc); JCheckBox cbSetembro = new JCheckBox(); cbSetembro.setSelected(false); gbc.gridx = 1; gbc.gridy = 4; gbc.insets = margens; add(cbSetembro, gbc); JLabel lbOutubro = new JLabel("Outubro"); gbc.gridx = 0; gbc.gridy = 5; gbc.insets = margens; add(lbOutubro, gbc); JCheckBox cbOutubro = new JCheckBox(); cbOutubro.setSelected(false); gbc.gridx = 1; gbc.gridy = 5; gbc.insets = margens; add(cbOutubro, gbc); JLabel lbNovembro = new JLabel("Novembro"); gbc.gridx = 0; gbc.gridy = 6; gbc.insets = margens; add(lbNovembro, gbc); JCheckBox cbNovembro = new JCheckBox(); cbNovembro.setSelected(false); gbc.gridx = 1; gbc.gridy = 6; gbc.insets = margens; add(cbNovembro, gbc); JLabel lbDezembro = new JLabel("Dezembro"); gbc.gridx = 0; gbc.gridy = 7; gbc.insets = margens; add(lbDezembro, gbc); JCheckBox cbDezembro = new JCheckBox(); cbDezembro.setSelected(false); gbc.gridx = 1; gbc.gridy = 7; gbc.insets = margens; add(cbDezembro, gbc); JButton btSalvar = new JButton("Salvar"); gbc.gridx = 0; gbc.gridy = 8; gbc.insets = margens; add(btSalvar, gbc); JButton btAtualizar = new JButton("Atualizar"); gbc.gridx = 1; gbc.gridy = 8; gbc.insets = margens; add(btAtualizar, gbc); JButton btExcluir = new JButton("Excluir"); gbc.gridx = 2; gbc.gridy = 8; gbc.insets = margens; add(btExcluir, gbc); JButton btLimpar = new JButton("Limpar"); gbc.gridx = 3; gbc.gridy = 8; gbc.insets = margens; add(btLimpar,gbc); btSalvar.addActionListener(this); btAtualizar.addActionListener(this); btExcluir.addActionListener(this); btLimpar.addActionListener(this); setVisible(true); }catch(Exception e) { JOptionPane.showMessageDialog(this,e.getMessage()); } } public void salvar() { try{ Pessoas pessoas= new Pessoas(); //Verifica se o campo está vaisio String nome = txtNome.getText(); if (nome.isEmpty()) { JOptionPane.showMessageDialog(this, "O campo Nome não pode estar vazio.", "Erro de Validação", JOptionPane.ERROR_MESSAGE); return; } pessoas.setNome(nome); pessoas.setAgosto(cbAgosto.isSelected()); pessoas.setSetembro(cbSetembro.isSelected()); pessoas.setOutubro(cbOutubro.isSelected()); pessoas.setNovembro(cbNovembro.isSelected()); pessoas.setDezembro(cbDezembro.isSelected()); dao.salvar(pessoas); JOptionPane.showMessageDialog(this,"Salvo com sucesso!"); }catch(Exception e){ JOptionPane.showMessageDialog(this,"Erro ao Salvar! "+e.getMessage()); } } public void excluir(){ try{ Pessoas pessoas = new Pessoas(); pessoas.setNome(txtNome.getText()); dao.excluir(pessoas); JOptionPane.showMessageDialog(this,"Excluido com sucesso!"); }catch(Exception e){ JOptionPane.showMessageDialog(this,"Exclusão mal sucedida!"); } } public void atualizar(){ try{ Pessoas pessoas = new Pessoas(); pessoas.setId(Integer.parseInt(txtID.getText())); pessoas.setNome(txtNome.getText()); pessoas.setAgosto(cbAgosto.isSelected()); pessoas.setSetembro(cbSetembro.isSelected()); pessoas.setOutubro(cbOutubro.isSelected()); pessoas.setNovembro(cbNovembro.isSelected()); pessoas.setDezembro(cbDezembro.isSelected()); dao.atualizar(pessoas); JOptionPane.showMessageDialog(this,"Atualizado com sucesso!"); }catch(Exception e){ JOptionPane.showMessageDialog(this,"Erro ao Atualizar!"); } } public void limpar(){ txtID.setText(""); txtNome.setText(""); cbAgosto.setSelected(false); cbSetembro.setSelected(false); cbOutubro.setSelected(false); cbNovembro.setSelected(false); cbDezembro.setSelected(false); } public void actionPerformed(ActionEvent pessoas){ if (pessoas.getSource() == btSalvar) { salvar(); } else if (pessoas.getSource() == btAtualizar) { atualizar(); } else if (pessoas.getSource() == btExcluir) { excluir(); } else if (pessoas.getSource() == btLimpar) { limpar(); } } } //Classe DAOPessoas package Conexao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import javax.swing.JOptionPane; public class DAOPessoas { private Connection con = null; private PreparedStatement stmt = null; private ResultSet rs = null; public DAOPessoas() throws SQLException, ClassNotFoundException{ try { Class.forName("com.mysql.cj.jdbc.Driver"); con = DriverManager.getConnection("jdbc:mysql://localhost:3306/confra","root",""); }catch(SQLException e) { JOptionPane.showMessageDialog(null, e.getMessage(), "Erro", JOptionPane.ERROR_MESSAGE); }catch (ClassNotFoundException ex) { System.out.println("Erro: Não encontrou o driver do BD."); ex.printStackTrace(); } } public void desconectar(Connection con) throws SQLException{ try { if (con != null && !con.isClosed()) { con.close(); System.out.println("Desconectou do banco de dados."); } } catch (SQLException ex) { System.out.println("Não conseguiu desconectar do BD."); ex.printStackTrace(); } } public void salvar(Pessoas pessoas) throws Exception{ try { stmt = con.prepareStatement("INSERT INTO PESSOAS(NOME, AGOSTO, SETEMBRO, OUTUBRO, NOVEMBRO, DEZEMBRO) VALUES(?,?,?,?,?,?)"); stmt.setString(1, pessoas.getNome()); stmt.setBoolean(2, pessoas.getAgosto()); stmt.setBoolean(3, pessoas.getSetembro()); stmt.setBoolean(4, pessoas.getOutubro()); stmt.setBoolean(5, pessoas.getNovembro()); stmt.setBoolean(6, pessoas.getDezembro()); stmt.executeUpdate(); }finally { if (stmt != null) { stmt.close(); } if (con != null) { desconectar(con); } } } public void atualizar(Pessoas pessoas) throws Exception{ try { stmt = con.prepareStatement("UPDATE PESSOAS SET NOME = ?, AGOSTO = ?, SETEMBRO = ?, OUTUBRO = ?, NOVEMBRO = ?, DEZEMBRO = ? WHERE ID = ?"); stmt.setString(1, pessoas.getNome()); stmt.setBoolean(2, pessoas.getAgosto()); stmt.setBoolean(3, pessoas.getSetembro()); stmt.setBoolean(4, pessoas.getOutubro()); stmt.setBoolean(5, pessoas.getNovembro()); stmt.setBoolean(6, pessoas.getDezembro()); stmt.setInt(7, pessoas.getId()); stmt.executeUpdate(); }finally { if (stmt != null) { stmt.close(); } if (con != null) { desconectar(con); } } } public void excluir(Pessoas pessoas)throws Exception{ try { stmt = con.prepareStatement("DELETE FROM PESSOAS WHERE NOME = ?"); stmt.setString(1,pessoas.getNome()); stmt.executeUpdate(); }finally { if (stmt != null) { stmt.close(); } if (con != null) { desconectar(con); } } } public List<Pessoas> listar() { List<Pessoas> lista = new ArrayList<>(); try { String sql = "SELECT * FROM PESSOAS"; stmt = con.prepareStatement(sql); rs = stmt.executeQuery(); while (rs.next()) { Pessoas pessoa = new Pessoas(); pessoa.setId(rs.getInt("ID")); pessoa.setNome(rs.getString("NOME")); pessoa.setAgosto(rs.getBoolean("AGOSTO")); pessoa.setSetembro(rs.getBoolean("SETEMBRO")); pessoa.setOutubro(rs.getBoolean("OUTUBRO")); pessoa.setNovembro(rs.getBoolean("NOVEMBRO")); pessoa.setDezembro(rs.getBoolean("DEZEMBRO")); lista.add(pessoa); } }catch (Exception e) { e.printStackTrace(); } finally { try { if (rs != null) { rs.close(); }if (stmt != null) { stmt.close(); }if (con != null) { desconectar(con); } } catch (SQLException e) { e.printStackTrace(); } } return lista; } } //Classe Pessoas package Conexao; public class Pessoas { //Objetos da classe private int id; private String nome; private Boolean agosto; private Boolean setembro; private Boolean outubro; private Boolean novembro; private Boolean dezembro; //Getters e Setters public int getId() { return id; } public void setId(int id) { this.id = id; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public Boolean getAgosto() { return agosto; } public void setAgosto(Boolean agosto) { this.agosto = agosto; } public Boolean getSetembro() { return setembro; } public void setSetembro(Boolean setembro) { this.setembro = setembro; } public Boolean getOutubro() { return outubro; } public void setOutubro(Boolean outubro) { this.outubro = outubro; } public Boolean getNovembro() { return novembro; } public void setNovembro(Boolean novembro) { this.novembro = novembro; } public Boolean getDezembro() { return dezembro; } public void setDezembro(Boolean dezembro) { this.dezembro = dezembro; } }
M6 Posted July 9, 2024 at 08:46 AM Report #633229 Posted July 9, 2024 at 08:46 AM Tens de ser mais concreto nas tuas dúvidas. Despejar centenas de linhas de código a julgar que alguém as vai conseguir compreender para descobrir o teu problema não vai funcionar. Quando dizes que não consegues, por exemplo, atualizar, isso quer dizer precisamente o quê? Tens um erro de sintaxe no SQL? Dá uma exceção no código? Simplesmente executa o comando mas não faz o que devia? Envia o que estás a fazer para um log, em particular os comandos de SQL e as exceções, para compreender o que se passa. Agarra nos comenados de SQL e executa-os diretamente na base de dados para confirmar que estão corretos. 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar."
Solution Wenderson Lisboa Posted July 10, 2024 at 09:34 PM Author Solution Report #633248 Posted July 10, 2024 at 09:34 PM Em 09/07/2024 às 05:46, M6 disse: Tens de ser mais concreto nas tuas dúvidas. Despejar centenas de linhas de código a julgar que alguém as vai conseguir compreender para descobrir o teu problema não vai funcionar. Quando dizes que não consegues, por exemplo, atualizar, isso quer dizer precisamente o quê? Tens um erro de sintaxe no SQL? Dá uma exceção no código? Simplesmente executa o comando mas não faz o que devia? Envia o que estás a fazer para um log, em particular os comandos de SQL e as exceções, para compreender o que se passa. Agarra nos comenados de SQL e executa-os diretamente na base de dados para confirmar que estão corretos. Pessoa desculpas, a verdade é que quando enviei esse tópico já era 3:00 horas da manhã, estava muito cansado e acabei não pensando direito, mas já encontrei a solução. Agradeço a todos que tiraram um tempo para me ajudar, obrigado.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now