1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Listar apartir de uma view com o jdbc

Estou com um problema em listar uma view do Mysql no meu programa Java. Segue o código abaixo.

public class Medida {

    private int idM;
    private Equipamento idEquip;
    private double potenciaMedida;
    private double valor;
    private Date data;

    //getters e setters
}

public class Equipamento {

    private int idE;
    private String tipo;
    private double potencia;

    //getter e setter
}

public class EquipMedida {

    private Equipamento tipo;
    private Equipamento pot;
    private Medida potMedida;
    private Medida valor;
    private Medida data;

    //getter e setter
}

public class EquipMedidaDAO {

    public List<EquipMedida> select(){

        Connection conn = Conexao.getConexao();
        List<EquipMedida> medidas = new ArrayList<>();
        String sql = "SELECT * FROM vw_medidaequipa";
        PreparedStatement stmt = null;
        ResultSet rs = null;
        try {
            stmt = conn.prepareStatement(sql);
            rs = stmt.executeQuery();

            while(rs.next()){
                EquipMedida em = new EquipMedida();
                Equipamento e = new Equipamento();
                Medida m = new Medida();

                e.setTipo(rs.getString("tipo"));
                em.setTipo(e);
                e.setPotencia(rs.getDouble("potencia"));
                em.setPot(e);

                m.setPotenciaMedida(rs.getDouble("potencia_m"));
                em.setPotMedida(m);
                m.setValor(rs.getDouble("valor_real"));
                em.setValor(m);
                m.setData(rs.getDate("data"));
                em.setData(m);

                medidas.add(em);
            }

        } catch (SQLException ex) {
            ex.printStackTrace();
        }finally{
            Conexao.closeConexao(conn, stmt, rs);
        }

        return medidas;

    }

}

//método para exibir a view na tabela
    public void resultado(){

        DefaultTableModel dtm = (DefaultTableModel) jtResultado.getModel();
        EquipMedidaDAO dao = new EquipMedidaDAO();
        dtm.setNumRows(0);
        for(EquipMedida em : dao.select()){

            dtm.addRow(new Object[]{

                em.getTipo(),
                em.getPot(),
                em.getPotMedida(),
                em.getValor(),
                em.getData()
            });
        }
    }

na classe EquipMedidaDAO não to sabendo o certo em setar os valores da classe Equipamento e da classe medida. Antes de eu criar a classe EquipMedida, vivia dando erro, quando eu criei, desse jeito que tá no código a cima, ele funciona e não retorna nenhum erro, mas os resultados na tabela só aparecem lixo e não os resultados verdadeiros. Resumindo, os valores que aparece na tabela, não são os mesmo valores que aparece no banco, mas retorna o numero de linhas que tem no banco.

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java jdbc ou faça a sua própria pergunta.