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.
[quote=akiles]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.[/quote]
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