Olá pessoal tenho um problema de quando eu salvar quero que me retorne o ultimo ID ( que foi gerado automático no banco (Firebird) ) e set em um jTextField
meu dão eu fiz assim:
public static int getLastId() throws SQLException{
Connection conexao = ConexaoFirebird.getConexao();
String retornaUltID = "Select last from CAD_VENDA_PDV where ID_VENDA = ?";
PreparedStatement pstmt = conexao.prepareStatement(retornaUltID);
ResultSet rs = pstmt.executeQuery();
rs.next();
int lastId = rs.getInt("ID_VENDA");
rs.close();
pstmt.close();
return lastId;
}
e coloquei o método na minha class assim:
private JTextField getJTextFieldCodigoCliente() {
VendaDAO vendaDAO = new VendaDAO();
if (jtcarre == null) {
try {
jtcarre = new JTextField(String.valueOf(vendaDAO.getLastId()));
} catch (SQLException ex) {
}
}
return jtcarre;
}
alguem tem alguma dica ou coisa parecida ? não apresenta erro no codigo mais não não gera nada
private int salvarNfVenda(){
VendaDAO VendaDAO = new VendaDAO();
ModelVenda modelVenda = new ModelVenda();
modelVenda.setFORMA_PAG1(Float.parseFloat(jTDDPdv.getText()));
VendaDAO.salvarNfVenda(modelVenda);
JOptionPane.showMessageDialog(this, "Dados Gravado, Com Sucesso !!");
return 0;
}
meu metodo na class é esse mais esta dando erro ao gravar
private int salvarNfVenda(){
VendaDAO vendaDAO = new VendaDAO();
ModelVenda modelVenda = new ModelVenda();
modelVenda.setFORMA_PAG1(Float.parseFloat(jTDDPdv.getText()));
int resultado vendaDAO.salvarNfVenda(modelVenda);
JOptionPane.showMessageDialog(this, "Dados Gravado, Com Sucesso !!");
return resultado;
}
private int salvarNfVenda()
{
VendaDAO vendaDAO = new VendaDAO();
ModelVenda modelVenda = new ModelVenda();
modelVenda.setFORMA_PAG1(Float.parseFloat(jTDDPdv.getText()));
int resultado vendaDAO.salvarNfVenda(modelVenda); // Dando erro nessa linha (o Erro ";" expected)
JOptionPane.showMessageDialog(this, "Dados Gravado, Com Sucesso !!");
return resultado; // e nessa (variable resultado mignt not have been initialized)
}
alguém mais poderia me ajudar ? o que poderia ser se o código ta todo certinho porque ele esta apresentando erro =/. lembrando que ele não salva e quando tiro o RETURN_GENERATED_KEYS ele salva ( Banco Firebird ) quem puder ajudar por favor !
Pessoa aqui deu tudo certo, muito obrigado a thimor que ajudou pra caramba
Codigo DAO
public int getLastId() throws SQLException{ //meu metodo
Connection conexao = ConexaoFirebird.getConexao(); //minha conexao
String retornaUltID = "Select max(ID_VENDA) from CAD_VENDA_PDV"; // Select max que pega o ultimo registro salvo (o que me parece que no Firebird não funciona o Statement.RETURN_GENERATED_KEYS )
PreparedStatement pstmt = conexao.prepareStatement(retornaUltID);
ResultSet rs = pstmt.executeQuery();
rs.next();
int lastId = rs.getInt(1);
conexao.close();
return lastId;
}
Minha Class VendaPDV
private int ultimaID() throws SQLException{
VendaDAO vendaDAO = new VendaDAO();
ModelVenda modelVenda = new ModelVenda();
int lastId = (vendaDAO.getLastId());
jTNumNF.setText(String.valueOf(lastId));
return lastId;
}
espero que ajude, como me ajudou tbm, lembrando ja que vc foi ajudado, então sempre procure ajudar ao próximo foi tão bom quando o Thimor me respondia e teve outra pessoa tbm que acho que não faz parte da comunidade mais tbm ajudou muito o Mario Vieira que nem sei de onde é mais ajudou pra caramba