Consulta MySQL - O retorno não traz o que preciso. [RESOLVIDO]

2 respostas
S

Boa tarde pessoal,

antes de mais nada, quero esclarecer que realmente não achei no forum um tópico que me ajude. Com certeza deve ter algum, mas não encontrei e ralei bastante nisso desde sábado.

Estou trabalhando com java e flex. Estou fazendo uma aplicação CRUD para ir entendendo como funciona e tudo mais.

Possuo uma tabela no MySQL que se chama Cargos (com duas colunas ID_Cargo e Nome).

Fiz um select no java para me retornar em um arraylist o resultado do select, mas não estou conseguindo apresentar esse resultado, por exemplo, em um Syso...
A parte do meu código que eu faço a chamada no banco está abaixo. Se puderem me dar uma dica de como resolvo isso (reiterando, meu problema é em apresentar o resultado do select).

Obrigado,
public static List<String> getCargo(){
		List<String> list = new ArrayList<String>();
		
		try {
			conecta();
			
			String sql = "SELECT ID_Cargo, Nome FROM Cargo";
			statement = conexao.createStatement();
			resultset = statement.executeQuery(sql);
			
			while(resultset.next()){
				list.add(resultset.getString("ID_Cargo"));
				list.add(resultset.getString("Nome"));				
			}
		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("erro no sql");
		}
		return list;
		
	}

2 Respostas

ajinfotec

amigo faça o sequinte crie um objeto Cargo com duas
vaariaveis de instancia, um id e um nome.

assim:

public class Cargo {

private Integer idCargo;
private String nome;

//metodos get e set
}
public static List<Cargo> getCargo(){  
     List<Cargo> list = new ArrayList<Cargo>();  
       
     try {  
         conecta();  
           
         String sql = "SELECT ID_Cargo, Nome FROM Cargo";  
         statement = conexao.createStatement();  
         resultset = statement.executeQuery(sql);  
           
         while(resultset.next()){ 
             Cargo c = new Cargo();
             c.setIdCargo(resultset.getInt("ID_Cargo"));  
             c.setNome(resultset.getString("Nome"));   
             list.add(c);             
         }  
     } catch (Exception e) {  
         e.printStackTrace();  
         System.out.println("erro no sql");  
     }  
     return list;  
       
 }

fica bem mais organizado o teu progeto dessa forma.

david.cs20

Olhando rapidamente seu codigo acho que a principio a String SQL esta errada.
Tente executar ela no console do banco para ver se ela traz o que deseja.
E tambem acho que o While contem erros.

Abaixo codigo que fiz para meu sistema que faz a mesma coisa.

public ArrayList visualizar(int matricula) throws SQLException, ClassNotFoundException
    {
           
            ConectarBanco cb = new ConectarBanco();
            Statement stm = cb.conectar();
            String comando="SELECT matricula, nome, numero, imei, modelo, operadora, plano FROM celular WHERE matricula = " + matricula + ";";
            rs = stm.executeQuery(comando);

            while(rs.next())
            {
                Cadastro a = new Cadastro();
                a.setMatricula(rs.getInt("matricula"));
                a.setNome(rs.getString("nome"));
                a.setNumero(rs.getString("numero"));
                a.setImei(rs.getString("imei"));
                a.setPlano(rs.getString("plano"));
                a.setModelo(rs.getString("modelo"));
                a.setOperadora(rs.getString("Operadora"));


                lista.add(a);
              
            }
     
   return lista;
   }
Criado 20 de setembro de 2010
Ultima resposta 20 de set. de 2010
Respostas 2
Participantes 3