Boa noite pessoal =)
Tenho uma tabela no banco contagem, quero depois de cada insert ele atualize grade da Jtable fiz de uma mais ai tenho que implementar código na Interface, quero poder fazer direto pelo ContagemDAO que onde fica todas instruções SQL.
// Modelo Tabela Contagem.
package br.com.vestuario.tabela;
import br.com.vestuario.modelo.Contagem;
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;
public class TabelaContagem extends AbstractTableModel {
private final int COL_ID = 0;
private final int COL_QUANTIDADE = 1;
private final int COL_BARRAS = 2;
private List<Contagem> contagens;
public TabelaContagem() {
contagens = new ArrayList();
}
public TabelaContagem(List<Contagem> lista) {
this();
contagens.addAll(lista);
}
public int getRowCount() {
return contagens.size();
}
public int getColumnCount() {
return 4;
}
@Override
public String getColumnName(int column) {
//qual o nome da coluna
if (column == COL_ID) {
return "ID";
} else if (column == COL_BARRAS) {
return "barra";
} else if (column == COL_QUANTIDADE) {
return "quantidade";
}
return "";
}
@Override
public Class getColumnClass(int columnIndex) {
if (columnIndex == COL_ID) {
return String.class;
} else if (columnIndex == COL_BARRAS) {
return String.class;
} else if (columnIndex == COL_QUANTIDADE) {
return String.class;
}
return null;
}
public Object getValueAt(int rowIndex, int columnIndex) {
Contagem c = contagens.get(rowIndex);
if (columnIndex == COL_ID) {
return c.getId();
} else if (columnIndex == COL_BARRAS) {
return c.getBarras();
} else if (columnIndex == COL_QUANTIDADE) {
return c.getQuantidade();
}
return "";
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
//no nosso caso todas vão ser editáveis, entao retorna true pra todas
return true;
}
@Override
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
Contagem c = contagens.get(rowIndex);
if (columnIndex == COL_ID) {
c.setId(Integer.valueOf(COL_ID));
} else if (columnIndex == COL_BARRAS) {
c.setBarras(aValue.toString());
} else if (columnIndex == COL_QUANTIDADE) {
c.setQuantidade(Integer.valueOf(COL_QUANTIDADE));
}
fireTableDataChanged();
}
}
// classe Contagem Modelo
public class Contagem {
private int id;
private int quantidade;
private String barras;
private String produto;
/**
* @return the id
*/
public int getId() {
return id;
}
/**
* @param id the id to set
*/
public void setId(int id) {
this.id = id;
}
/**
* @return the quantidade
*/
public int getQuantidade() {
return quantidade;
}
/**
* @param quantidade the quantidade to set
*/
public void setQuantidade(int quantidade) {
this.quantidade = quantidade;
}
/**
* @return the barras
*/
public String getBarras() {
return barras;
}
/**
* @param barras the barras to set
*/
public void setBarras(String barras) {
this.barras = barras;
}
}
// ContagemDAO
public class ContagemDAO {
ConnectionFactory conecta = new ConnectionFactory();
public ContagemDAO() {
// Abre conexão com o Banco de Dados.
conecta.conexao();
}
public void incluir(Contagem c) {
try {
String sql = "insert into contagem (quantidade, barras) values(?,?)";
PreparedStatement pst = conecta.conn.prepareStatement(sql);
pst.setInt(1, c.getQuantidade());
pst.setString(2, c.getBarras());
pst.execute();
// JOptionPane.showMessageDialog(null, “Incluído”);
} catch (Exception erro) {
JOptionPane.showMessageDialog(null, “Erro na Inclusão: \n” + erro.getMessage());
}
}
public void atualizar(Contagem ccc) {
try {
String sql = "update contagem set id=?, quantidade=?, barras=? where id=?";
PreparedStatement pst = conecta.conn.prepareStatement(sql);
pst.setInt(1, ccc.getId());
pst.setInt(2, ccc.getQuantidade());
pst.setString(3, ccc.getBarras());
pst.setInt(4, ccc.getId());
pst.execute();
// JOptionPane.showMessageDialog(null, "Atualizado com Sucesso");
} catch (SQLException erro) {
JOptionPane.showMessageDialog(null, "Erro na Alteração: \n \n" + erro.getMessage());
}
}
// pesquisa no banco
public List<Contagem> psContagem(String n) {
try {
String sql = "select * from contagem where barras like '%" + n + "%'";
// String sql = “SELECT c.id, c.quantidade, c.barras, p.nome from contagem c, produto p where c.barras=p.barras like '%” + n + “%’”;
PreparedStatement pst = conecta.conn.prepareStatement(sql);
List<Contagem> resultados = new ArrayList<Contagem>();
ResultSet rs = pst.executeQuery();
while (rs.next()) {
Contagem cc = new Contagem();
cc.setId(rs.getInt("id"));
cc.setQuantidade(rs.getInt("quantidade"));
cc.setBarras(rs.getString("barras"));
// ps.setBarras(rs.getString(“barras”));
// ps.setNome(rs.getString(“nome”));
// ps.setNumero(rs.getInt(“numero”));
// ps.setEstoque(rs.getInt(“estoque”));
resultados.add(cc);
}
return resultados;
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, “Erro Erro ao buscar” + e.getMessage());
}
return null;
}
public List<Contagem> pescBarrasContagem(String b) {
try {
String sql = "select * from contagem where barras like '%" + b + "%'";
// String sql = “SELECT c.id, c.quantidade, c.barras, p.nome from contagem c, produto p where c.barras=p.barras like’%” + b + “%’”;
PreparedStatement pst = conecta.conn.prepareStatement(sql);
List<Contagem> resultados = new ArrayList<Contagem>();
ResultSet rs = pst.executeQuery();
while (rs.next()) {
Contagem ps = new Contagem();
ps.setId(rs.getInt("id"));
ps.setQuantidade(rs.getInt("quantidade"));
ps.setBarras(rs.getString("barras"));
//ps.setProduto(rs.getString("produto"));
resultados.add(ps);
}
return resultados;
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Erro Erro ao buscar" + e.getMessage());
}
return null;
}
public void encherTabela(Contagem mn) {
try {
String sql = "select * from produto JOIN contagem on contagem.barras=produto.barras";
PreparedStatement p = conecta.conn.prepareStatement(sql);
List<Contagem> resultados = new ArrayList<Contagem>();
ResultSet rr = p.executeQuery();
while (rr.next()) {
Contagem w = new Contagem();
w.setId(rr.getInt("id"));
w.setQuantidade(rr.getInt("quantidade"));
w.setBarras(rr.getString("barras"));
resultados.add(w);
}
} catch (Exception e) {
}
}
public void excluir(Contagem cnn) {
try {
String sql = "delete from contagem where id=? ";
PreparedStatement pst = conecta.conn.prepareStatement(sql);
pst.setInt(1, cnn.getId());
pst.execute();
//JOptionPane.showMessageDialog(null, "Excluido com Sucesso");
} catch (SQLException erro) {
JOptionPane.showMessageDialog(null, "Erro na Exclusão: \n \n" + erro.getMessage());
}
}
}
//botao incluir
if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
try {
ContagemDAO dao = new ContagemDAO();
Contagem cc = new Contagem();
cc.setQuantidade(Integer.parseInt(txtQuantidade.getText()));
cc.setBarras(txtCodBarras.getText());
dao.incluir(cc);