SQL + Java

3 respostas
ricardocomp

Olá Pessoal,
eu estou com uma
dúvida aqui em SQL
pois preciso listar
todas as solicitacoes de servicos
de um técnico, dado o seu id:

public List<SolicitacaoServico> procurarSolicitacoesServico(int idTecnico) throws LAFQADaoException {
        
        PreparedStatement ps = null;
        ResultSet rs = null;

        try {

            List<SolicitacaoServico> list = new ArrayList<SolicitacaoServico>();

            ps = conn.prepareStatement("SELECT * FROM tecnico WHERE idTecnico=?");
            ps.setInt(1, idTecnico);
            rs = ps.executeQuery();

            if (!rs.next()) {
                throw new Exception("Não foi encontrado nenhum"
                                    + " Tecnico com o código: " + idTecnico);
            }


            ps = conn.prepareStatement("SELECT protocolo, idProdutor, idTecnico, nome, data_2, " +
                    "hora, numero_amostra FROM solicitacao_servico");

            rs = ps.executeQuery();

            while (rs.next()) {
                int protocolo = rs.getInt(1);
                int idProdutor = rs.getInt(2);
                String nome = rs.getString(3);
                String data = rs.getString(4);
                String hora = rs.getString(5);
                int numeroAmostra = rs.getInt(6);
               
                ProdutorDao produtorDao = new ProdutorDao();
                Produtor produtor = produtorDao.procurarProdutor(idProdutor);

                TecnicoDao tecnicoDao = new TecnicoDao();
                Tecnico tecnico = tecnicoDao.procurarTecnico(idTecnico);

                list.add(new SolicitacaoServico(protocolo, produtor, tecnico, nome, data, hora, numeroAmostra));
            }

            return list;
        }
        catch (Exception sqle) {
            throw new LAFQADaoException(sqle);
        }
        finally {
            try {
                ConnectionFactory.closeconnection(conn, ps, rs);
            }
            catch (SQLException ex) {
                Logger.getLogger(TecnicoDao.class.getName()).log(Level.SEVERE, null, ex);
            }

        }
    }

Será que alguém poderia me dar
uma ajuda de como eu faço
isso em SQL, pois não está
funcionando o que eu fiz.

[]'s.

3 Respostas

ricardocomp

Na realidade pessoal
eu preciso criar algo desse tipo:

tecnico.setSolicitacoesServico(solitacaoServicoDao.procurarSolicitacoesServicoes(tecnico.getIdTecnico()));

será que alguém poderia me dar uma ajuda
fazendo o favor?

[]'s.

nel

Boa noite. É simples, ele não reconhece o ‘’ no seu select. Altere esse '’ no seu select e busque as informações que deseja. Eu costumo dar “apelidos” as minhas tabelas quando efetuo select pois facilita. Da seguinte forma:

SELECT t.TecnicoId, t.NomeTecnico FROM tecnico t WHERE idTecnico=?

Os campos “TecnicoId” e “NomeTecnico” são ficticios e servem apenas para frizar o que eu disse. O apelido dado a tabela foi o ‘t’.
Bem, tente desta forma, caso não funcione poste o erro.

Abraços!

ricardocomp

O nel Obrigado pela ajuda,
eu vou fazer alguns testes aqui
e qq coisa eu volto a aqui. :smiley:

[]'s.

Criado 23 de outubro de 2009
Ultima resposta 28 de out. de 2009
Respostas 3
Participantes 2