Boa Noite! Pessoal to com uma duvida que não consegui resolver pelos outros topicos do forum.
Estou fazendo um programa de protocolos e ele tem 2 tabelas, uma de cadastro de visitantes (tabelaVisitantes) com os campos (codVisitante, nome, telefone etc) e outra tabela de assunto (tabelaAssuntos) com os campos (codAssunto, assunto e setor) cada uma com seu Jframe para inserir e alterar itens.
Para gerar os protocolos criei outra tabela, tabelaProtocolo e outro jFrame que carrega em um jComboBox os nomes da tabelaVisitantes e os assuntos da tabelaAssuntos em outro jComboBox alem de ter um jtextfield para data e outro para observação.
Gostaria de saber como posso inserir na nova tabela (tabelaProtocolos)) o campo codVisitante da tabelaVisitantes e o campo codAssunto da tabelaAssunto além dos dados dos outros jTextField? Lembrando que no jComboBox são carregados o campo nome da tabelaVisitantes e o campo assunto da tabelaAssunto então o comando getSelectItem não da ja que retorna o nome e gostaria de gravar os Ids destes campos.
Obs: vi no forum o comando Inner join entretanto não consigui utiliza-lo corretamente.
Carregue seus combobox com o objeto inteiro, Visitante. E não simplesmente com o nome dele.
Você tem uma classe de negócio para cada um desses dados, não tem?
Murillo_Pontes
Alguem me ajuda por favor
Murillo_Pontes
ViniGodoy:
Carregue seus combobox com o objeto inteiro, Visitante. E não simplesmente com o nome dele.
Você tem uma classe de negócio para cada um desses dados, não tem?
Não entendi!!
Pra carregar o comboBox eu dou um select na tabela Visitantes inteira ai jogo apenas o campo nome no comboBox como no codigo.
publicvoidmostrarDadosVisitantes()throwsSQLException{try{conGerarProtocolo.execute("SELECT * FROM tabelaVisitantes ORDER BY nome");Stringvisitante;while(conGerarProtocolo.resultset.next()){visitante=conGerarProtocolo.resultset.getString("nome");comboBoxNome.addItem(visitante);}}catch(Exceptionerro){JOptionPane.showMessageDialog(null,"Erro ao carrega dados no comboBox Visitantes telaCadastroProtocolos: "+erro);}}
ViniGodoy
Você precisa criar uma classe para guardar seu visitante:
Depois, vc carrega os dados do banco para essa classe:
try{conGerarProtocolo.execute("SELECT * FROM tabelaVisitantes ORDER BY nome");while(conGerarProtocolo.resultset.next()){Visitantevisitante=newVisitante(conGerarProtocolo.resultset.getInt("id"),conGerarProtocolo.resultset.getString("nome"));comboBoxNome.addItem(visitante);}}catch(Exceptionerro){JOptionPane.showMessageDialog(null,"Erro ao carrega dados no comboBox Visitantes telaCadastroProtocolos: "+erro);}}
Aí, quando vc pegar o dado de dentro da combo, não vai ser simplesmente o nome. Vai ser um visitante inteiro. E ele tem o nome e o id juntos: