Estou usando o Netbeans e um banco de dados Mysql
ja consegui executar as operacoes basicas (inclusao, alteracao, exclusao) dos registros do banco utilizando jTable e alterando ou excluindo a linha selecionada
porem estou tentando agora o seguinte : excluir um registro que eu seleciono em uma JComboBox
por exemplo, eu tenho no banco de dados a tabela “tipof” (tipo de fornecedor) que possui apenas os campos ‘id’ e 'nome’
tenho um JComboBox que exibe os nomes cadastrados na tabela tipof.
Eu gostaria de selecionar um nome na combobox e ao clicar em excluir fosse excluido o registro que contem a id do nome no banco
Eu tenho no meu formprincipal
o seguinte
public class jTPrincipal extends javax.swing.JFrame {
List<TipoF> tipof;
// para exibir no combobox os dados da tabela eu faco o seguinte
public void listarTipoF() throws SQLException {
TipoFDao dao = new TipoFDao();
tipof = dao.getLista();
mostraPesquisatf(tipof);
}
private void mostraPesquisatf(List<TipoF> tipof) {
for (int i = 0; i < tipof.size(); i++) {
jCBCFTipo.addItem(tipof.get(i).getNome());
}
}
//eu tento realizar a exclusao com o seguinte
public void excluirTipoF() throws SQLException {
TipoFDao dao = new TipoFDao();
dao.remove(tipof.get( jCBCFTipo.getSelectedItem())); // aki da erro fala q precisa d um Int
//ja tentei dao.remove(tipof.get( (Integer) jCBCFTipo.getSelectedItem())); mas nao adianta
}
na classe TipoFDao eu tenho o seguinte
public class TipoFDao {
private Connection conexao;
public TipoFDao() throws SQLException {
this.conexao = CriaConexao.getConexao();
}
public List<TipoF> getLista() throws SQLException {
String sql = "select * from tipof";
PreparedStatement stmt = this.conexao.prepareStatement(sql);
ResultSet rs = stmt.executeQuery();
List<TipoF> minhaLista = new ArrayList<TipoF>();
while (rs.next()) {
TipoF c1 = new TipoF();
c1.setId(Long.valueOf(rs.getString("Id")));
c1.setNome(rs.getString("nome"));
minhaLista.add(c1);
}
rs.close();
stmt.close();
return minhaLista;
}
public void remove(TipoF v1) throws SQLException {
String sql = "delete from tipof where id=?";
PreparedStatement stmt = conexao.prepareStatement(sql);
stmt.setLong(1, v1.getId());
stmt.execute();
stmt.close();
}}
e na classe TipoF
public class TipoF {
private Long id;
private String nome;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}
eu ja usei delphi uma vez e lembro que tinha algum esquema de colocar pro combobox pegar o id em vez do nome porem exibir o nome
nao sei se com java eh algo parecido
mas nao faco ideia de como proceder
grato desde ja