Pessoal boa tarde estou querendo passar os dados de um produto cadastrado no banco de dados Mysql, em uma combox quando já abrir a tela, automático, porem ele mostra mensagem null.
E também quero mostrar o id automaticamente quando abrir a tela,mas está dando erro null
Vou mandar o código para vocês verem.
Esse é o código em que eu coloco os método para ele abrir sozinho.
Connection con =null ;
ResultSet rs = null ;
PreparedStatement pst= null;
Conecta conexao = new Conecta();
public Vendas2() throws ClassNotFoundException , SQLException {
initComponents();
setLocationRelativeTo(null);
setSize(400,300);
this.selecionarId();//carregar automaticamente
this.adicionaCombo();
con=Conecta.conexao();
}
Esse é o método que pega os dados da tabela.
public void adicionaCombo(){//int vend_codvenda
String sql = “SELECT * FROM tb_fornecedor”;
try {
pst=con.prepareStatement(sql);
rs=pst.executeQuery();
//informações dos produtos cadastrados.
while(rs.next()){
cmbUser.addItem(rs.getString("for_fantasia"));
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null,"Erro na Inserção :\n Erro:"+e.getMessage());
}
}
Esse é o método em que eu pego o id,mas também não sei como colocar ele em um textField.
public void selecionarId(){
String sql = “SELECT for_id * FROM tb_fornecedor”;
try {
pst=con.prepareStatement(sql);
rs=pst.executeQuery();
while(rs.next()){
int exp = rs.getInt("for_id");
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null,"Erro na inserção do id:\n Erro:"+e.getMessage());
}
}
Olá Felipe,
olhei aqui e vi algo estranho.
Você chama a função adicionaCombo()
mas não passa para ela o paramento de conexão. con;
Você está obtendo um erro de NullPointerException nessa função? Dê um System.out.println
dentro do while()
nesta função e veja se existe dados retornados da Query
sim ele esta retornando os dados
Felipe,
onde estão declaradas as variáveis pst
e rs
?
Exemplo:
1 curtida
Consegui man achei o erro e resolvi obrigado
Uma outra duvida como eu faço pra pegar um dado selecionado do combox e colocar em uma table, sendo que esses dados gravados vieram de um banco ?
Acho que tenho o código disso em algum lugar. Vou procurar e assim que achar eu te mando
1 curtida
try {
Statement st;
st = c.getConexao().createStatement();
ResultSet rs = st.executeQuery("select * from disciplinas;");
if(rs!=null)
while(rs.next()){
DefaultTableModel model = (DefaultTableModel) tblTabela.getModel();
model.addRow(new Object[]{rs.getString(2),rs.getString(3),rs.getString(4),rs.getString(5),rs.getString(6),rs.getString(7),rs.getString(8)});
}
} catch (SQLException ex) {
Logger.getLogger(InsertDisciplinaModelo.class.getName()).log(Level.SEVERE, null, ex);
}
Eu não entendi muito bem, como vou pegar os dados selecionado do combox e adicionar no model.addRow?
Bom dia!
Cara, tenta fazer algo assim:
private List<SelectItem> dropDownVagas;
private void refreshDropDownTypeVacancy() {
try {
lstTipoVagas = tipoVagaService.selectAllByTypeTreatment(tipoAtendimento);//Aqui substitui pela seu metodo de busca no banco.
dropDownVagas = new ArrayList<>();
if (lstTipoVagas != null) {//Só verifica para ver se veio algo do banco e não ter exception
lstTipoVagas.stream().forEach((v) -> {
dropDownVagas.add(new SelectItem(v.getIdTipoVaga(), v.getDescricao()));//Adiciona o item.
});
}
} catch (Exception ex) {
logger.error("Falha ao buscar o tipo de vaga: " + ex.getMessage());
}
}
Não sei o que está usuando para front-end (Primefaces, Richefaces e etc). Estou usando o Prime, mas a ideia é a mesma, então na sua view você faz isto:
<p:selectOneMenu value="#{solicitarAtendimentoBean.solicitacao.tipoVaga.idTipoVaga}"
autoWidth="false" style="width: 76%"
required="true"
requiredMessage="O campo vaga é obrigatório.">
<f:selectItem itemLabel="Selecione..." itemValue=""/>
<f:selectItems value="#{solicitarAtendimentoBean.dropDownVagas}"/> </p:selectOneMenu>
Espero ter ajudado.