eu não gosto de fazer perguntas , mas não tenho mas alternativas , preciso realmente de uma ajuda de quem entende do assunto …
tenho um pequeno projeto de faculdade , tem tela de login , cadastro e a tela principal onde a magica acontece , kkkk, a parte de login ta ok , a parte de cadastro me parece está ok também , porém a tela principal , ta me dando problema , ja faz 2 semanas que eu mal durmo tentando resolver isso e não encontro solução , minha falta de conhecimento também ajuda muito com as dificuldade , eu coloco os valores no campo e o campo não atualiza… eu tenho quase certeza que o problema ta no DAO , por isso que eu vou mandaro o DAO e a tela principal e no final explico o MySQL
package modeloDAO;
import java.sql.*;
import java.util.*;
import javax.swing.*;
import modeloBean.pessoas;
import sistemaConexao.conexaoBanco;
public class pessoasDAO {
private Connection conexao = null;
public boolean criarPessoa(pessoas usuarios) {
conexao = conexaoBanco.abrirConexao();
String sql = "INSERT INTO pessoas (nome,email,senha,id) VALUES(?,?,?,?)";
PreparedStatement stmt = null;
try {
stmt = conexao.prepareStatement(sql);
stmt.setString(1, usuarios.getNome());
stmt.setString(2, usuarios.getEmail());
stmt.setString(3, usuarios.getSenha());
stmt.setInt(4, usuarios.getId());
stmt.executeUpdate();
stmt.close();
JOptionPane.showMessageDialog(null, "Cliente " +usuarios.getNome() + " Já Pode Realizar Login !");
return true;
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "E-mail Já cadastrado No Sistema! /n"+e);
return false;
}finally {
conexaoBanco.fecharConexao(conexao, stmt);
}
}
public boolean validarUsuario(String email , String senha) {
Connection conexao = conexaoBanco.abrirConexao();
PreparedStatement stmt = null;
ResultSet rs = null;
boolean check = false;
try {
stmt= conexao.prepareStatement("SELECT*FROM pessoas WHERE email = ? and senha = ?");
stmt.setString(1, email);
stmt.setString(2, senha);
rs = stmt.executeQuery();
if(rs.next()) {
check = true;
}
} catch (SQLException e) {
e.printStackTrace();
}
return check;
}
public void criarValor(pessoas valor) {
conexao = conexaoBanco.abrirConexao();
PreparedStatement stmt = null;
try {
stmt = conexao.prepareStatement("UPDATE pessoas SET valorDeposito=?,valorDolar=?,saldo=? WHERE id=? ");
stmt.setDouble(1, valor.getValorDeposito());
stmt.setDouble(2, valor.getValorDolar());
stmt.setDouble(3, valor.getSaldo());
stmt.setInt(4, valor.getId());
stmt.executeUpdate();
JOptionPane.showMessageDialog(null, "Valores Inseridos Com Sucesso");
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, " Valores Não Insirida!! "+e);
}finally {
conexaoBanco.fecharConexao(conexao, stmt);
}
}
public List<pessoas>lerValores() {
Connection conexao = conexaoBanco.abrirConexao();
PreparedStatement stmt = null;
ResultSet rs = null;
List<pessoas> Valor = new ArrayList<>();
try {
stmt= conexao.prepareStatement("SELECT*FROM pessoas");
rs = stmt.executeQuery();
while(rs.next()) {
pessoas valor = new pessoas();
valor.setValorDeposito(rs.getDouble("valorDeposito"));
valor.setValorDolar(rs.getDouble("valorDolar"));
valor.setSaldo(rs.getDouble("saldo"));
Valor.add(valor);
}
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "erro na atualização de tabela ");
}
finally {
conexaoBanco.fecharConexao(conexao, stmt, rs);
}
return Valor;
}
}
a parte gráfica telaPrincipal (Jframe)
package sistemaGrafico;
import java.awt.EventQueue;
import javax.swing.*;
import java.awt.*;
import javax.swing.table.*;
import modeloBean.*;
import modeloDAO.pessoasDAO;
class telaPrincipal extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
private JTextField campoValorDolar;
private JTextField campoValorDeposito;
private JTable tabela;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
telaPrincipal frame = new telaPrincipal();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public telaPrincipal() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("Tela Princioal");
setBounds(100, 100, 781, 368);
getContentPane().setLayout(null);
JPanel panel = new JPanel();
panel.setBounds(0, 0, 765, 329);
getContentPane().add(panel);
panel.setLayout(null);
JScrollPane baseDaTabela = new JScrollPane();
baseDaTabela.setBounds(10, 171, 744, 109);
panel.add(baseDaTabela);
baseDaTabela.setEnabled(false);
tabela = new JTable();
tabela.setFillsViewportHeight(true);
tabela.setModel(new DefaultTableModel(
new Object[][] {
{null, null, null},
},
new String[] {
"valor deposito", "valor dolar", "saldo"
}
) {
/**
*
*/
private static final long serialVersionUID = 1L;
Class[] columnTypes = new Class[] {
Object.class, Object.class, Double.class
};
public Class getColumnClass(int columnIndex) {
return columnTypes[columnIndex];
}
boolean[] columnEditables = new boolean[] {
false, false, false
};
public boolean isCellEditable(int row, int column) {
return columnEditables[column];
}
});
tabela.getColumnModel().getColumn(0).setResizable(false);
tabela.getColumnModel().getColumn(0).setPreferredWidth(102);
tabela.getColumnModel().getColumn(1).setResizable(false);
tabela.getColumnModel().getColumn(1).setPreferredWidth(92);
tabela.getColumnModel().getColumn(2).setResizable(false);
baseDaTabela.setViewportView(tabela);
JButton botaoExcluirContao = new JButton("Excluir Conta");
botaoExcluirContao.setBounds(10, 291, 127, 23);
panel.add(botaoExcluirContao);
JLabel label = new JLabel("Valor Em Dolar Depositado");
label.setBounds(10, 11, 150, 23);
panel.add(label);
label.setFont(new Font("Berlin Sans FB", Font.PLAIN, 13));
JLabel label_1 = new JLabel("Valor Do Dolar Agora");
label_1.setBounds(170, 11, 127, 23);
panel.add(label_1);
label_1.setFont(new Font("Berlin Sans FB", Font.PLAIN, 13));
JButton botaoFecharSistema = new JButton("Sair");
botaoFecharSistema.setBounds(665, 291, 89, 23);
panel.add(botaoFecharSistema);
JComboBox comboBox = new JComboBox();
comboBox.setBounds(307, 12, 164, 23);
panel.add(comboBox);
JButton botaoLimpar = new JButton("Limpar");
botaoLimpar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
campoValorDeposito.setText("");
campoValorDolar.setText("");
}
});
botaoLimpar.setBounds(109, 91, 89, 23);
panel.add(botaoLimpar);
JButton botaoExcluirTabela = new JButton("Excluir Tabela");
botaoExcluirTabela.setBounds(208, 91, 127, 23);
panel.add(botaoExcluirTabela);
JButton botaoValidar = new JButton("Validar");
botaoValidar.setBounds(10, 91, 89, 23);
panel.add(botaoValidar);
campoValorDeposito = new JTextField();
campoValorDeposito.setBounds(10, 45, 150, 20);
panel.add(campoValorDeposito);
campoValorDeposito.setColumns(10);
campoValorDolar = new JTextField();
campoValorDolar.setBounds(170, 45, 127, 20);
panel.add(campoValorDolar);
campoValorDolar.setColumns(10);
botaoValidar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
pessoas valor = new pessoas();
pessoasDAO dao = new pessoasDAO();
double deposito = Double.parseDouble( campoValorDeposito.getText());
double dolar = Double.parseDouble(campoValorDolar.getText());
double saldo = deposito*dolar;
valor.setValorDeposito(Double.parseDouble(campoValorDeposito.getText()));
valor.setValorDolar(Double.parseDouble(campoValorDolar.getText()));
valor.setSaldo(saldo);
dao.criarValor(valor);
campoValorDolar.setText("");
campoValorDeposito.setText("");
criarTabela();
}
});
botaoFecharSistema.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
criarTabela();
}
public void criarTabela() {
DefaultTableModel modelo = (DefaultTableModel) tabela.getModel();
modelo.setNumRows(0);
pessoasDAO pdao = new pessoasDAO();
for (pessoas valor: pdao.lerValores()) {
modelo.addRow(new Object[] {
valor.getValorDeposito(),
valor.getValorDolar(),
valor.getSaldo()
});
}
}
}
No MySQL ta da seguinte forma , 1 tabela com 7 campos ( id , nome ,email, senha,valorDepositado, ValorDolar, saldo)
id = PK,NN
nome,email=NN
senha,valorDeposito,valorDolar , saldo=null
e ta como eu disse , eu digito os numeros no JFrame , ele diz que foi salvo com sucesso mas não tem nada lá …