Re:resultSet nao exibe tudo ...=(

7 respostas
S

A linha ResultSetMetaData md = rs.getMetaData(); nao esta correta com isso vc esta pegando informações da tabela e nao dos dados.

Tente assim:

ResultSet rs = stm.executeQuery("SELECT coluna1, coluna2, coluna3 FROM tabela"); while (rs.next()) { String coluna1 = rs.getString("coluna1"); int coluna2 = rs.getInt("coluna2"); Date coluna3 = rs.getDate("coluna3"); }

qq duvida de uma olhada neste artigo:

http://www.guj.com.br/java.tutorial.artigo.7.1.guj

Valeu.

7 Respostas

joede.fadel

como que vc tah instanciando o objeto na sua jsp

Luiz-SP

tiaguinhooo:
Obrigado pessoal estou com uma duvida
eu fiz um negocio aqui que pega os dados de uma ResultSet e escreve dentro de uma tabela
no jsp so que acontece que nao esta aparecendo todos os registros suponhamos q existe 10 registros com
id_maquina = 10 ao invez de mostra todos nao mostra nada como se nao tivesse dentro do banco mais eu vo la na mao dou um select la aparece os 10 registros sera que errei em algum lugar o codigo ta ai embaixo !

try
        {
            
        
        ResultSetMetaData md = rs.getMetaData();
    int count = md.getColumnCount();
    a+="<table border=1>";
   a+="<tr>";
    for (int i=1; i<=count; i++) {
      a+="<th>"+md.getColumnLabel(i);
    }
    a+="</tr>";
    while (rs.next()) {
      a+="<tr>";
      for (int i=1; i<=count; i++) {
        a+="<td>"+rs.getString(i);
      }
      a+="</tr>";
    }
    a+="</table>";
  }
        catch (SQLException ex) {
            ex.printStackTrace();
        }  
        
        return a;

gente brigadao mesmo valeu !

Vc não postou a parte mais importante, que é quando vc instancia e executa o sql através do seu objeto rs!

Outra coisa, pq vc tá fazendo consulta ao banco dentro do jsp, eu não faria assim, fica parecendo PHP ou ASP!! Note bem, não me considero dono da verdade, se vc tem um bom motivo pra fazer assim tudo bem… :slight_smile:

Luiz-SP

Então a sua query sql me pareceu confusa, principalmente a questão do “id_maquina != 0”, num tenho com dizer o erro tá aqui ou ali, vc vai ter de debugar pra ver como a query tá saído.

Comentários, já disse não me considero dono da verdade, sou só um cara tentando te ajudar. Java é Orientados a objeto, não orientado a Strings, passe uma lista (ArrayList) para o jsp no lugar da String a, como o JSP vai exibir isso é problema do JSP e não da sua classe de negócio.

Luiz-SP

Ao invés disso faça isso

#   
#     try {  
#          ResultSetMetaData md = rs.getMetaData();  
#           int count = md.getColumnCount();  
#           a+="\n <table border=1>";  
#           a+="<tr>";  
#           for (int i=1; i<=count; i++) {  
#              a+="<th>"+md.getColumnLabel(i);  
#           }  
#           a+="\n </tr>";

Faça algo como isso

#   
#     try  {         
#
#       ResultSetMetaData md = rs.getMetaData();  
#       int count = md.getColumnCount();  
#       ArrayList <String> columname = new ArrayList<String>();  
#       for (int i=1; i<=count; i++) {  
#          columname(md.getColumnLabel(i));  
#        }

Eu teria uma classe Tabela essa classe teria os valores das linhas e das colunas, e o jsp saberia como exibir a classe Tabela, considere usar hibernate.

tiaguinhooo

Obrigado pessoal estou com uma duvida
eu fiz um negocio aqui que pega os dados de uma ResultSet e escreve dentro de uma tabela
no jsp so que acontece que nao esta aparecendo todos os registros suponhamos q existe 10 registros com
id_maquina = 10 ao invez de mostra todos nao mostra nada como se nao tivesse dentro do banco mais eu vo la na mao dou um select la aparece os 10 registros sera que errei em algum lugar o codigo ta ai embaixo !

try
        {
            
        
        ResultSetMetaData md = rs.getMetaData();
    int count = md.getColumnCount();
    a+="&lt;table border=1&gt;";
   a+="&lt;tr&gt;";
    for (int i=1; i&lt;=count; i++) {
      a+="&lt;th&gt;"+md.getColumnLabel(i);
    }
    a+="&lt;/tr&gt;";
    while (rs.next()) {
      a+="&lt;tr&gt;";
      for (int i=1; i&lt;=count; i++) {
        a+="&lt;td&gt;"+rs.getString(i);
      }
      a+="&lt;/tr&gt;";
    }
    a+="&lt;/table&gt;";
  }
        catch (SQLException ex) {
            ex.printStackTrace();
        }  
        
        return a;

gente brigadao mesmo valeu !

tiaguinhooo

entao cara assim nao funfa na minha jsp mais quando eu vo coloco pra mostra onde seja
JOptionPane System.out.println funfa numa boa aparece tudo so nao sei pq ele nao faz a listagem completa
no jsp …

tiaguinhooo

eu to fazendo isso dentro de uma classe java nao direto na jsp a jsp é minha view so recebe essa String “a”, ai q eu faço so dou um print nessa String “a” e ai pluf aparece minha tabela

if(request.getParameter("pesquisar") != null)
       {
        
        Converte transforma = new Converte();
         Principal dates = transforma;
          Intermaq objpesq = new Maq();
          Date parsedinit = new Date(0,0,0);
          Date parsedend = new Date(0,0,0);
            if((request.getParameter("nomeMaquina") != null) && !(request.getParameter("nomeMaquina").equals(""))){ 
             nomeMaquina = (String)(request.getParameter("nomeMaquina"));
             }
            
            if((request.getParameter("idmaquina") != null) && !(request.getParameter("idmaquina").equals(""))){
             id= (Integer.parseInt(request.getParameter("idmaquina")));
             } 
                
            if((request.getParameter("datain") != null) && !(request.getParameter("datain").equals(""))){
               datainit= (String)(request.getParameter("datain"));
               parsedinit =  dates.converte(datainit);
               }

            if((request.getParameter("datater") != null) && !(request.getParameter("datater").equals(""))){
              dataend = (String)(request.getParameter("datater"));
              parsedend =  dates.converte(dataend);
                
                }
String a = objpesq.PesquisaMaquina(nomeMaquina, id, parsedinit, parsedend);

e aki a parte que pesquisa pra mim

public String PesquisaMaquina(String nome, int id_maquina, Date dataent, Date datasai)
    {
        Conexao connect = new Conexao();
        connect.getConectaBanco();
        StringBuffer junta = new StringBuffer();
 Date corrige = new Date(12,31,1899);
           junta.append("SELECT p.id_maquina, m.nm_maquina, p.data_inicio, p.data_termino FROM pr_maquina_manutencao p , en_maquina m WHERE m.id_maquina = p.id_maquina ");
            if(id_maquina != 0)
            junta.append("and m.id_maquina="+id_maquina+"");
            if(nome != null)
            junta.append("and m.nm_maquina like'%"+nome+"%'");
            if(dataent != null || dataent.equals(corrige))
            junta.append("and p.data_inicio={D '"+dataent+"'}");
            if(datasai != null || datasai.equals(corrige))
            junta.append("and p.data_termino={D'"+datasai+"'}");
        ResultSet rs;
      
             rs = connect.searchResults(junta.toString());
        String a="";

    try
        {
            
        
        ResultSetMetaData md = rs.getMetaData();
    int count = md.getColumnCount();
    a+="\n &lt;table border=1&gt;";
   a+="&lt;tr&gt;";
    for (int i=1; i&lt;=count; i++) {
      a+="&lt;th&gt;"+md.getColumnLabel(i);
    }
    a+="\n &lt;/tr&gt;";
    while (rs.next()) {
      a+="&lt;tr&gt;";
      for (int i=1; i&lt;=count; i++) {
        a+="&lt;td&gt;"+rs.getString(i)+"&lt;/td&gt;";
      }
      a+="\n &lt;/tr&gt;";
    }
    a+="\n &lt;/table&gt;";
  }
        catch (SQLException ex) {
            ex.printStackTrace();
        }  
        
        return a;
    }

como vcs podem ver eu retorno o a e imprimo ele so q blz a ideia a independente do q o cara digitar vir um resultado pro sujeito eu so coloco a id tem q me retorna um monte de registro nao me retorna nada ai quando eu coloco id, data entrada, data saida, nome funciona so me tras 1 registro e isso ai desde ja obrigado pela atenção! :wink:

Criado 7 de novembro de 2007
Ultima resposta 7 de nov. de 2007
Respostas 7
Participantes 4