Consultar a Base de dados

3 respostas
javolatra

Estou fazendo um sistema onde eu preciso listar todos os eventos de um determinado funcionário. EX:
o funcionário (código: 01 - nome: Antonio), tem 4 eventos vinculado ao código dele (Código: 01 - descrinção: Hora extra, Código: 02 - descrinção: Aumento, Código: 03 - descrinção: Atestado, Código: 04 - descrinção: Falta), eu quero que o sistema me permita navegar entre os quatro eventos desse funcionario atraves do botões ( |<<| |<| |>| |>>| ), o que ta acontecendo é que o meu código ta aparecendo todos os eventos cadastrados, sem respeitar a vinculação com o código do funcionário.

public void proximoEvento(JTextField codigo){
        try{
            conexao.rs = conexao.stmt.executeQuery("SELECT movimentos.codigo,movimentos.descrincao, movimentos.quantidade, movimentos.valor" +
                    " FROM movimentos,funcionarios WHERE funcionarios.registro = "+codigo.getText());
            
            if(conexao.rs.next()){
                fieldCodigoDoEvento.setText(conexao.rs.getString("codigo"));
                fieldDescrincao.setText(conexao.rs.getString("descrincao"));
            }
            
        }catch(SQLException e){
            e.printStackTrace();
        }
    }

3 Respostas

italo.vendrameto

Bom vamos por partes

1º caso, quando vc tem join de duas tabelas vc tem que no minimo uma clausula WHERE entre as duas para evitar que os resultados fiquem duplicados (produto cartesiano), da uma olhada nisso

conexao.rs = conexao.stmt.executeQuery("SELECT movimentos.codigo,movimentos.descrincao, movimentos.quantidade, movimentos.valor" + " FROM movimentos,funcionarios WHERE funcionarios.id = movimentos.id_func AND funcionarios.registro = "+codigo.getText());

2º fica uma sugestão cuidado com esse tipo de construção

conexao.rs = conexao.stmt.executeQuery("SELECT movimentos.codigo,movimentos.descrincao, movimentos.quantidade, movimentos.valor" + " FROM movimentos,funcionarios WHERE funcionarios.registro = "+codigo.getText());
seria muito mais seguro utilizar um preparedStatment

javolatra

1º caso, quando vc tem join de duas tabelas vc tem que no minimo uma clausula WHERE entre as duas para evitar que os resultados fiquem duplicados (produto cartesiano), da uma olhada nisso

Ok isso foi resolvido.
So mais um problema, quando eu clico no botao para navegar no proximo registro, ao inves dele saltar para o proximo registro, ele ta pulando para o ultimo, eu sei que tem ligação com minha consultaSystem.out.println("SELECT movimentos.codigo,movimentos.descrincao, movimentos.quantidade, movimentos.valor" + " FROM movimentos,funcionarios WHERE funcionarios.registro = movimentos.registro AND funcionarios.registro = "+codigo.getText()); mas onde eu poderia colocar essa consulta ?

italo.vendrameto

tenta explicar melhor como funciona, ou como deveria funcionar essa sua tela
eu não estou entendo oq vc esta querendo fazer…

Criado 7 de janeiro de 2008
Ultima resposta 8 de jan. de 2008
Respostas 3
Participantes 2