Pessoal boa tarde!!
Preciso de ajuda!! tenho uma aplicação de saida de produtos, tenho uma classe que faz o select no banco, e tenho um frame que recebe os dados do usuario e retorna a linha que ele solicitou, eu não consigo pegar um codigo digitada pelo usuario e mandar para a classe que faz o select e retorna o resultado.
Preciso de ajuda alguem pode me ajudar.
Select registros do banco de dados Mysql
10 Respostas
Pessoal boa tarde!!
Preciso de ajuda!! tenho uma aplicação de saida de produtos, tenho uma classe que faz o select no banco, e tenho um frame que recebe os dados do usuario e retorna a linha que ele solicitou, eu não consigo pegar um codigo digitada pelo usuario e mandar para a classe que faz o select e retorna o resultado.
Preciso de ajuda alguem pode me ajudar.
PreparedStatement vait e ajudar com isso +) procure aqui no guj tem um milhao de topicos ajudando
esse e o metode que lista os registros
public List<DadosDasBolsas> getselecthemocomponentes(){
try {
DadosDasBolsas dados = new DadosDasBolsas();
List<DadosDasBolsas> dadosBolsas = new ArrayList<DadosDasBolsas>();
PreparedStatement stmt = this.connection.prepareStatement("SELECT numerobolsa,dataschegada,tipobolsa, procedencia, volumebolsa, datacoleta, datavencimento, valorbolsa, outrotipobolsa, hepatiteb, hepatitec, hiv, chagas, sifilis, hilv_I, hilv_II, alt, tiposangue, destinobolsa, reacaotrans, motivodescarte, logg, datalog FROM dadosdabolsas WHERE numerobolsa=0000000000003");
stmt.setString(1, dados.getNumeroBolsa());
ResultSet rs = stmt.executeQuery();
stmt.execute();
while (rs.next()){
DadosDasBolsas dadosdasBolsas = new DadosDasBolsas();
dadosdasBolsas.setNumeroBolsa(rs.getString("numeroBolsa"));
dadosdasBolsas.setDataChegada(rs.getString("dataschegada"));
dadosdasBolsas.setTipoBolsa(rs.getString("tipobolsa"));
dadosdasBolsas.setProcedencia(rs.getString("procedencia"));
dadosdasBolsas.setVolumeBolsa(rs.getString("volumebolsa"));
dadosdasBolsas.setDataColeta(rs.getString("datacoleta"));
dadosdasBolsas.setDataVencimento(rs.getString("dataVencimento"));
dadosdasBolsas.setOutrotipobolsa(rs.getString("outrotipobolsa"));
dadosdasBolsas.setHep_b(rs.getString("hepatiteb"));
dadosdasBolsas.setHep_c(rs.getString("hepatitec"));
dadosdasBolsas.setHiv(rs.getString("hiv"));
dadosdasBolsas.setChagas(rs.getString("chagas"));
dadosdasBolsas.setSifilis(rs.getString("sifilis"));
dadosdasBolsas.setHilv_I(rs.getString("hilv_I"));
dadosdasBolsas.setHilv_II(rs.getString("hilv_II"));
dadosdasBolsas.setAlt(rs.getString("alt"));
dadosdasBolsas.setTipodesangue(rs.getString("tiposangue"));
dadosBolsas.add(dadosdasBolsas);
}
rs.close();
stmt.close();
return dadosBolsas;
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
O meu problema e pegar os valor digitado pelo usuario e passa para o meu select
sempre coloque os codigos entre code
PreparedStatement stmt = this.connection.prepareStatement("SELECT numerobolsa,dataschegada,tipobolsa, procedencia, volumebolsa, datacoleta, datavencimento, valorbolsa, outrotipobolsa, hepatiteb, hepatitec, hiv, chagas, sifilis, hilv_I, hilv_II, alt, tiposangue, destinobolsa, reacaotrans, motivodescarte, logg, datalog FROM dadosdabolsas WHERE numerobolsa= ?");
stmt.setString(1, dados.getNumeroBolsa());
ta vendo essa ? vai ser o que você ta setando ali no stmt.set…
Certo ? ,
mas no frame como ficaria dessa forma retorna null?
private void botaobolsaprocurarActionPerformed(java.awt.event.ActionEvent evt) {
try {
DadosHemocomponentesBancoDAO dao = new DadosHemocomponentesBancoDAO();
DadosDasBolsas bol = new DadosDasBolsas();
bol.setNumeroBolsa(numerobolsasaida.getText());
List<DadosDasBolsas> bolsas = dao.getLista();
for(DadosDasBolsas bolsa : bolsas ){
numerobolsasaida.setText(bolsa.getNumeroBolsa());
dataentradasaida.setText((String)bolsa.getDataChegada());
tipobolsasaida.setText((String) bolsa.getTipoBolsa());
procedimentosaida.setText((String)bolsa.getOutrotipobolsa());
hivsaida.setText(bolsa.getHiv());
datacoletasaida.setText(bolsa.getDataColeta());
datavencimentosaida.setText(bolsa.getDataVencimento());
gruposanguesaida.setText(bolsa.getTipodesangue());
procedenciasaida.setText(bolsa.getProcedencia());
sifilissaida.setText(bolsa.getSifilis());
volumesaida.setText(bolsa.getVolumeBolsa());
hepbsaida.setText(bolsa.getHep_b());
hepcsaida.setText(bolsa.getHep_c());
chagassaida.setText(bolsa.getChagas());
hilvisaida.setText(bolsa.getHilv_I());
hilviisaida.setText(bolsa.getHilv_II());
altsaida.setText(bolsa.getAlt());
}
} catch (Exception e) {
}
tenta assim
public List<DadosDasBolsas> getselecthemocomponentes(DadosDasBolsas dados){
List<DadosDasBolsas> dadosBolsas = new ArrayList<DadosDasBolsas>();
PreparedStatement stmt = this.connection.prepareStatement("SELECT numerobolsa,dataschegada,tipobolsa, procedencia, volumebolsa, datacoleta, datavencimento, valorbolsa, outrotipobolsa, hepatiteb, hepatitec, hiv, chagas, sifilis, hilv_I, hilv_II, alt, tiposangue, destinobolsa, reacaotrans, motivodescarte, logg, datalog FROM dadosdabolsas WHERE numerobolsa=0000000000003");
//este vc recebeu por parâmetro do frame, onde o usuário digitou a que queria
//caso vc nao tenha um objeto passe um valor do tipo int ou string, como você esteja usando
stmt.setString(1, dados.getNumeroBolsa());
}
No Frame
private void botaobolsaprocurarActionPerformed(java.awt.event.ActionEvent evt) {
try {
DadosHemocomponentesBancoDAO dao = new DadosHemocomponentesBancoDAO();
DadosDasBolsas bol = new DadosDasBolsas();
bol.setNumeroBolsa(numerobolsasaida.getText());
//aqui vc passa o objeto para o DAO
List<DadosDasBolsas> bolsas = dao.getLista(bol);
for(DadosDasBolsas bolsa : bolsas ){
numerobolsasaida.setText(bolsa.getNumeroBolsa());
dataentradasaida.setText((String)bolsa.getDataChegada());
tipobolsasaida.setText((String) bolsa.getTipoBolsa());
procedimentosaida.setText((String)bolsa.getOutrotipobolsa());
hivsaida.setText(bolsa.getHiv());
datacoletasaida.setText(bolsa.getDataColeta());
datavencimentosaida.setText(bolsa.getDataVencimento());
gruposanguesaida.setText(bolsa.getTipodesangue());
procedenciasaida.setText(bolsa.getProcedencia());
sifilissaida.setText(bolsa.getSifilis());
volumesaida.setText(bolsa.getVolumeBolsa());
hepbsaida.setText(bolsa.getHep_b());
hepcsaida.setText(bolsa.getHep_c());
chagassaida.setText(bolsa.getChagas());
hilvisaida.setText(bolsa.getHilv_I());
hilviisaida.setText(bolsa.getHilv_II());
altsaida.setText(bolsa.getAlt());
}
} catch (Exception e) {
}
Só mais um detalhe
onde está
WHERE numerobolsa=0000000000003
você troca o 0000000000003 por “?” (interrogação)
thiago doa tarde
seguindo a sua sugestão, segui todos a execução e descodir que ao ler o numero digitado pelo usuario ele entra no for mas não colocar o valor no selec e não entra no while (rs.next()){
try {
SistemaHEmoComponentesSelectDAO dao = new SistemaHEmoComponentesSelectDAO();
DadosDasBolsas bol = new DadosDasBolsas();
bol.setNumeroBolsa(numerobolsasaida.getText());
List<DadosDasBolsas> bolsas = dao.getselecthemocomponentes();
for(DadosDasBolsas bolsa : bolsas ){
Quando vc diz que ele não coloca o valor no select, não é por que seu objeto ta retornando null não?
faz o seguinte para testar, monta o sql em uma string juntando o parâmetro que vc recebeu do frame, dai vc pega este sql e executa direto no banco.
Desta forma vc saberá o que seu select está retornando, as vezes ele pode não estar trazendo nada.
E desta forma vc sabe se o parâmetro está vindo correto…
thiago deu certo agora!! eu que tava fazendo errado, ficou assim
public List getselecthemocomponentes(DadosDasBolsas dados){
List dadosBolsas = new ArrayList();
try {
PreparedStatement stmt = this.connection.prepareStatement("SELECT numerobolsa,dataschegada,tipobolsa, procedencia, volumebolsa, datacoleta, datavencimento, valorbolsa, outrotipobolsa, hepatiteb, hepatitec, hiv, chagas, sifilis, hilv_I, hilv_II, alt, tiposangue, destinobolsa, reacaotrans, motivodescarte, logg, datalog FROM dadosdabolsas WHERE numerobolsa=?");
stmt.setString(1, dados.getNumeroBolsa());
ResultSet rs = stmt.executeQuery();
muito obrigado pela ajuda