Boa Tarde,
Tenho o seguinte problema, to usando JDBC usando os padrões MVC e DAO e estou com duvida em meu método para alterar um registro
(postarei meu código com minha duvida abaixo para facilitar o entendimento)
JFrame
public class ControleFrame extends JFrame{
private static final long serialVersionUID = -1566149126697914835L;
private JLabel lbProduto, lbBobina, lbprodDia, lbmediaProdHr, lbprodMes,
lbLote, lbVolume, lbProdTurno, lbDataInicio, lbData1, lbData2, lbHora1, lbHora2, lbImageLogo;
protected JTextField txtProduto, txtBobina, txtMinBobina, txtprodDia, txtmediaProdHr, txtprodMes,
txtLote, txtVolume, txtProdTurno, txtImageLogo;
private JTextField txtOperador, txtTurno;
protected JButton btnRelatorios, btnBobina, btnEditarProd;
//private List<RelProdutos> productList = new ControleController().listaProdutos();
private ExecutorService exec;
private Future<?> f;
protected AtomicLong contador = new AtomicLong(0);
protected AtomicLong contador2 = new AtomicLong(0);
private static final DateFormat FORMATO_HORA = new SimpleDateFormat("HH:mm:ss");
private static final DateFormat FORMATO_DATA = new SimpleDateFormat("dd/MM/yyyy");
private Color corLetra = Color.black;
private Color corBordatxt = Color.black;
private Font fonteLbs = new Font("Calibri", Font.CENTER_BASELINE, 14);
// Aqui em diante vai o constructor e dentro seus componentes de Tela, acredito que não é nessessario postar..
//E aqui logo abaixo do Constructor começa os métodos da minha classe
//Método para salvar e alterar um registro
public void onClickSalvar(){
ControleController cc = new ControleController();
int txtLoteINT = Integer.parseInt(txtLote.getText());
int txtVolumeINT = Integer.parseInt(txtLote.getText());
int txtQuantidadeINT = Integer.parseInt(txtprodDia.getText());
try {
if(cc.verifyProduct(txtProduto.getText(), txtLoteINT)){
cc.alterar(id/*<- ??*/, txtProduto.getText(), txtOperador.getText(), txtTurno.getText(),
txtLoteINT, txtVolumeINT, txtQuantidadeINT, lbData2.getText());
}else{
cc.salvar(txtProduto.getText(), txtOperador.getText(), txtTurno.getText(),
txtLoteINT, txtVolumeINT, txtQuantidadeINT, lbDataInicio.getText(), lbData2.getText());
System.out.println("SALVO");
}
} catch (SQLException e) {
System.out.println("Não foi possivel salvar, " + e.getLocalizedMessage());
} catch (ParseException e) {
e.printStackTrace();
}
}
É nesse método o meu problema, o salvar() funciona perfeitamente, mas reparem ali no alterar é ali o problema, meu método que vem da classe controller e antes disso da Dao
pede um parametro com o ID para saber qual registro é para ser alterado e eu realmente ‘não sei’ da onde vou setar esse Id no JFrame ali… gostaria de saber onde estou me equivocando …?!
Método na classe Controller
public void alterar(int id, String produto, String operador, String turno, int lote, int volume,
int quantidade, String dataSaida)throws SQLException, ParseException{
RelProdutos relProdutos = new RelProdutos();
relProdutos.setId(id);
relProdutos.setProduto(produto);
relProdutos.setOperador(operador);
relProdutos.setTurno(turno);
relProdutos.setLote(lote);
relProdutos.setVolume(volume);
relProdutos.setQuantidade(quantidade);
relProdutos.setDataSaida(formatarData(dataSaida));
new RelProdutosDao().alterar(relProdutos);
}
Método na Classe Dao
public void alterar(RelProdutos relProdutos) throws SQLException{
String update = "UPDATE RELPRODUTOS " +
"SET produto = ?, operador = ?, turno = ?, lote = ?, volume = ?," +
"quantidade = ?, dataEntrada = ?, dataSaida = ? WHERE id = ?";
update(update, relProdutos.getId(), relProdutos.getProduto(), relProdutos.getOperador(),
relProdutos.getTurno(), relProdutos.getLote(), relProdutos.getVolume(),
relProdutos.getQuantidade(), relProdutos.getDataEntrada(), relProdutos.getDataSaida());
}
Agradeço desde já amigos, Abraços!!