Gostaria de saber como faço para atualizar elementos de um banco de dados através de um JTable.
Como atualizar elementos do Banco de Dados através de um JTable?
M
2 Respostas
D
1 like
Você tem seus dados Preenchidos na tabela certo,
Basta deixar sua tabela Editável
Exemplo
CODIGO | NOME | CPF
1 teste1 12345
2 teste2 54321
Coloque um Botão, “Update” com algum evento nele e acrescente os dados abaixo
Lembrando basta readaptar ao seu…
Faça um laço para percorrer a tabela
ClienteDAO dao = new ClienteDao();
Cliente cliente = new Cliente();
for (int i = 0; i < nomeDaSuaTabela.getRowCount(); i++) {
//pegando os dados da tabela coluna por coluna e preenchendo o objeto
cliente.setCodigo(((int) nomeDaSuaTabela.getValueAt(i, 0)));//posição 0 da tabela CODIGO
cliente.setNome((String) nomeDaSuaTabela.getValueAt(i, 1));// posição 1 da tabela NOME
cliente.setCpf((String) nomeDaSuaTabela.getValueAt(i,2));//posição 2 da sua tabela CPF
//caso de problema no cast do int
Utilize da siginte forma
Object codigo = (Object) nomeDaSuaTabela.getValueAt(i, 0);
cliente.setCodigo(Integer.parseInt(String.valueOf(codigo)));
//faça o metodo para update, recebendo o objeto cliente
dao.updateDadosDaTabela(cliente);
System.out.println("Update Sucesso");
}
//metodo de update
public void updateDadosDaTabela(Clientes clientes) throws SQLException {
String sql = "update clientes set nome=?, cpf=? where codigo=?";
PreparedStatement comando = bd.prepareStatement(sql);
comando.setString(1, clientes.getNome());
comando.setString(2, clientes.getCpf());
comando.setInt(3, clientes.getCodigo());
comando.execute();
}
M
Cara, eu não programo em DAO, não deu para entender essa parte do método Update.
/*
- To change this license header, choose License Headers in Project Properties.
- To change this template file, choose Tools | Templates
- and open the template in the editor.
*/
package Banco;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.io.Serializable;
import java.sql.PreparedStatement;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import <a href="http://javax.persistence.Id">javax.persistence.Id</a>;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Transient;
/**
*
-
@author Hudson33 */ @Entity @Table(name = “ESTADOS”, catalog = “”, schema = “HIGOR”) @NamedQueries({ @NamedQuery(name = “Estados.findAll”, query = “SELECT e FROM Estados e”), @NamedQuery(name = “Estados.findById”, query = “SELECT e FROM Estados e WHERE <a href="http://e.id">e.id</a> = :id”), @NamedQuery(name = “Estados.findByNomeDoEstado”, query = “SELECT e FROM Estados e WHERE e.nomeDoEstado = :nomeDoEstado”), @NamedQuery(name = “Estados.findBySiglaDoEstado”, query = “SELECT e FROM Estados e WHERE e.siglaDoEstado = :siglaDoEstado”)}) public class Estados implements Serializable { @Transient private PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) <a class="mention" href="/u/basic">@Basic</a>(optional = false) @Column(name = “ID”) private Integer id; @Column(name = “NOME_DO_ESTADO”) private String nomeDoEstado; @Column(name = “SIGLA_DO_ESTADO”) private String siglaDoEstado;
public Estados() {
}public Estados(Integer id) { <a href="http://this.id">this.id</a> = id; }
public Integer getId() { return id; }
public void setId(Integer id) { Integer oldId = <a href="http://this.id">this.id</a>; <a href="http://this.id">this.id</a> = id; changeSupport.firePropertyChange(“id”, oldId, id); }
public String getNomeDoEstado() { return nomeDoEstado; }
public void setNomeDoEstado(String nomeDoEstado) { String oldNomeDoEstado = this.nomeDoEstado; this.nomeDoEstado = nomeDoEstado; changeSupport.firePropertyChange(“nomeDoEstado”, oldNomeDoEstado, nomeDoEstado); }
public String getSiglaDoEstado() { return siglaDoEstado; }
public void setSiglaDoEstado(String siglaDoEstado) { String oldSiglaDoEstado = this.siglaDoEstado; this.siglaDoEstado = siglaDoEstado; changeSupport.firePropertyChange(“siglaDoEstado”, oldSiglaDoEstado, siglaDoEstado); }
<a class="mention" href="/u/override">@Override</a> public int hashCode() { int hash = 0; hash += (id != null ? id.hashCode() : 0); return hash; }
<a class="mention" href="/u/override">@Override</a> public boolean equals(Object object) { // TODO: Warning - this method won’t work in the case the id fields are not set if (!(object instanceof Estados)) { return false; } Estados other = (Estados) object; if ((<a href="http://this.id">this.id</a> == null && <a href="http://other.id">other.id</a> != null) || (<a href="http://this.id">this.id</a> != null && !this.id.equals(<a href="http://other.id">other.id</a>))) { return false; } return true; }
<a class="mention" href="/u/override">@Override</a> public String toString() { return “Banco.Estados[ id=” + id + " ]"; }
public void addPropertyChangeListener(PropertyChangeListener listener) { changeSupport.addPropertyChangeListener(listener); }
public void removePropertyChangeListener(PropertyChangeListener listener) { changeSupport.removePropertyChangeListener(listener); }
}
package Banco;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
public class Conectar {
public Statement stm;//responsável por preparar e realizar pesquisas no banco de dados
public ResultSet rs;//responsável por amazenar o resultado de uma pesquisa passada para o Statement
private String driver = “apache_derby_net”;//responsável por identificar o serviço de banco de dados
private String caminho = “jdbc:derby://localhost:1527/Higor”;//responsável por setar o local do banco de dados
private String usuario = “Higor”;
private String senha = “deliciacara15”;
public Connection conn; // responsável por realizar a conexão com o banco de dados
public void conexao()
{//método responsável por realizar a conexão com o banco.
try {//tentativa inicial
System.setProperty("jdbc.Drivers", driver);//seta a propriedade do driver de conexão
conn = DriverManager.getConnection(caminho, usuario, senha);//realiza a conexão com o banco de dados.
JOptionPane.showMessageDialog(null, "Conectado com sucesso.");
} catch (SQLException ex) {//se não der certo... \/
JOptionPane.showMessageDialog(null, "Erro de conexão."
+"\nErro:"+ex.getMessage());
}
}
public void executaSQL(String sql)
{
try {
stm = conn.createStatement(rs.TYPE_SCROLL_INSENSITIVE,
rs.CONCUR_READ_ONLY);
rs = stm.executeQuery(sql);
} catch (SQLException ex) {
Logger.getLogger(Conectar.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void desconecta()
{//método para fechar a conexão com o banco de dados
try {
conn.close();//fecha a conexao
JOptionPane.showMessageDialog(null, "Conexão fechada com sucesso!");
} catch (SQLException ex) {
Logger.getLogger(Conectar.class.getName()).log(Level.SEVERE, null, ex);
JOptionPane.showMessageDialog(null, "Erro ao fechar a conexão."
+ "\nErro:"+ex.getMessage());
}
}
}
Na classe do JFrame, onde tem a tabela, como você mesmo disse, já tenho meus dados preenchidos, só falta eu programar a tabela para quando ela for alterada, o componente do BD também for.
Criado 31 de agosto de 2016
Ultima resposta 1 de set. de 2016
Respostas 2
Participantes 2
Alura Git Flow: entenda o que é, como e quando utilizar Entenda o que é Git Flow, como funciona seu fluxo com branches como Master, Develop, Feature, Release e Hotfix, além de vantagens e desvantagens.
Casa do Codigo Apache Kafka e Spring Boot: Comunicacao assincrona entre... Por Eduardo Felipe Zambom Santana — Casa do Codigo