como gravar no banco valor inteiro sendo que populo meu Jcombo box com valor String
Bom pessual estava com muita duvida para popular meu combo box pegando os registros do meu banco, pois bem consegui fazer isso, e achei ate simples, percorrendo todo o banco e trazendo o resultado no Jcombo, ai beleza consigo setar os valores, mas na hora de gravar eles que esta o problema.
no meu banco tenho os seguintes campos:
//esta é a tabela que populo meu combo box
create table assunto(
cod_assunto int identity(1,1) not null,
descricao_assunto varchar(100)not null
constraint pk_cod_assunto primary key (cod_assunto),
constraint uq_assunto unique(descricao_assunto)
)
ai no caso referencio a chave primarisa desta tabela na seguinte tabela
create table Acervo(
tombo int identity(1,1) not null,
Titulo varchar(100),
cod_assunto int not null
constraint pk_tombo primary key (tombo),
constraint uq_titulo unique (titulo),
constraint fk_cod_assunto foreign key (cod_assunto)
references Assunto(cod_assunto)
)
e na hora de gravar no banco não consigo pois como disse populo meu combo com string e preciso gravar no banco com int somente o codigo do assunto
Se alguem puder me ajudar agradeço muito, não coloquei meu codigo java aqui pois estou no serviço e aqui não tem como eu abrir, mas espero que tenham entendido, qualquer duvida tento ser mais claro
Na hora que vc precisar utilizar o valor da sua combo pra gravar no bd, não dá pra converter de String pra int ?
Você precisa guardar um objeto na sua combo, não só o String com a descrição. Já posto um link com um exemplo…
Aqui vai um link com o passo-a-passo do que fazer:
http://www.guj.com.br/posts/list/208543.java#1059654
Mas no lugar de “Cidade” a sua classe será para um “Assunto”.
[quote=ViniGodoy]Aqui vai um link com o passo-a-passo do que fazer:
http://www.guj.com.br/posts/list/208543.java#1059654
Mas no lugar de “Cidade” a sua classe será para um “Assunto”.
[/quote]
putz Vini que show em, valew cara, vou testar quando chegar na facul caso de algum erro posto aqui novamente
Então entendi o que estava fazendo naquele seu exemplo agora na hora de implementar no que eu fiz estou sem ideia de como fazer, sera que alguem pode dar uma luz
eu chamo este método que criei na inicialização dos componentes
popularComboAssunto();
[code][
public void popularComboAssunto(){
cad_acervo.executeSQL("select Descricao_Assunto from Assunto");
try {
Jcombo_A
ssunto.removeAllItems();
Jcombo_Assunto.addItem(“ESCOLHA UMA OPÇÃO”);
while (cad_acervo.resultset.next()) {
Jcombo_Assunto.addItem(cad_acervo.resultset.getString(“Descricao_Assunto”));
}
} catch (SQLException ex) {
Logger.getLogger(Cad_Acervo.class.getName()).log(Level.SEVERE, null, ex);
}
}
[/code]
ai o Vini deu a ideia de fazer da seguinte form para poder gravar o valor inteiro no banco a partir da string que eu seto no combo
public class Cidade {
public int id;
public String nome;
public Cidade(int id, string nome) {
this.id = id;
this.nome = nome;
}
public int getId() { return id; }
public String getNome() { return nome; }
@Override
public String toString() { return getNome(); }
}
ai ele disse para fazer o seguinte
Como dentro do combo só tem objetos do tipo Cidade, o método getSelectedValue() também retornará uma Cidade. Aí é só fazer:
Cidade cidade = (Cidade) seuCombo.getSelectedValue();
gravarNoBanco(cidade.getId());
mas como implemento isso usando o meu método?? nem sei se da para reaproveitar o método que fiz para popular o combo?