Result Set para Tipo Enum

7 respostas
darksteel3000

Ola pessoal estou com um problema aqui para realizar uma consulta para retornar o valor pro meu ResultSet, sendo que não estou conseguindo pegar o valor de um objeto do tipo ENUM, vejam o codigo:

METODO PROCURAR

public Cliente procurar(String cpf) throws ClienteInexistenteException {

Cliente cliente = null;

ResultSet rs = null;

String sql = “select * from cliente_endereco ce where ce.cpf = '”+cliente.getCpf()+"’";

try {

Statement stmt = DbConection.conecta().createStatement();

rs = stmt.executeQuery(sql);
if (rs.next()) {
			cliente = new Cliente(rs.getString("cpf"), rs.getString("nome"),
							  [b]rs.getString("tipo")[/b], rs.getString("cep"),
							  rs.getString("numero"), rs.getString("complemento"));
		}
	} catch (SQLException e) {
		throw new RuntimeException(e.getMessage());
	} finally {
		
	}
    return cliente;
}

CLASSE CLIENTE

package br.com.qualiti.negocio;

/**

  • Classe b�sica que representa uma entidade cliente, com seus dados, valida��es

  • dos mesmos e suas opera��es relacionadas.

  • @author J�nior [email removido]

  • @version 1.0
    */
    public class Cliente {

    /**

    • O CPF do cliente.
      /
      private String cpf;
      /
      *

    • O nome do cliente.
      /
      private String nome;
      /
      *

    • O tipo do cliente.
      */
      private TipoCliente tipo;

      private String cep;
      
      private String complemento;
      
      private String numero;
      
    public Cliente(String cpf, String nome, TipoCliente tipo, String cep, String numero, String complemento) {
    
    this.cpf = cpf;
    
    this.nome = nome;
    
    this.tipo = tipo;
    
    this.cep = cep;
    
    this.complemento = complemento;
    
    this.numero = numero;
    
    }
    
    public String getCep() {
    
    return cep;
    
    }
    
    public void setCep(String cep) {
    
    this.cep = cep;
    
    }
    
    public String getComplemento() {
    
    return complemento;
    
    }
    
    public void setComplemento(String complemento) {
    
    this.complemento = complemento;
    
    }
    
    public String getNumero() {
    
    return numero;
    
    }
    
    public void setNumero(String numero) {
    
    this.numero = numero;
    
    }
    

    /**

    • O construtor da classe. Inicializa os atributos CPF, nome e tipo do cliente.
    • @param newCpf o valor do CPF.
    • @param newNome o valor do nome.
    • @param newTipo o valor do tipo.
    • @see Q1 Est� certo o construtor atribuir diretamente os valores
    • de newCpf e de newNome aos atributos cpf e nome ??
      

    */

    public Cliente(String newCpf, String newNome, TipoCliente newTipo) {
    
     this.cpf = newCpf;
     this.nome = newNome;
     this.tipo = newTipo;
    

    }

    public Cliente(String cpf, String nome) {
    
    super();
    
    this.cpf = cpf;
    
    this.nome = nome;
    
    }
    

    public Cliente() {

    }

    public Cliente(String text, String text0, String text1) {
    
    throw new UnsupportedOperationException(Erro no teu construtor);
    
    }
    

    /**

    • Retorna o CPF do cliente.

    • @return String o CPF do cliente.
      */
      public String getCpf() {

      return cpf;
      
      }
      
      /**
      
    • Retorna o nome do cliente.

    • @return String o nome do cliente.
      */
      public String getNome() {

      return nome;
      
      }
      
      /**
      
    • Retorna o tipo do cliente.

    • @return TipoCliente o tipo do cliente.
      
      <em>/
      
      public TipoCliente getTipo() {
      
      return tipo;
      
      }
      
      /</em>*
      
    • Atualiza o valor do CPF do cliente.

    • @param newCpf o novo valor.

    • @see Q1 Ser� que o CPF de um cliente pode ser nulo ou branco ??
      */
      public void setCpf(String newCpf) {

      cpf = newCpf;
      
      }
      
      /**
      
    • Atualiza o valor do nome do cliente.

    • @param newNome o novo valor.

    • @see Q1 Ser� que o nome de um cliente pode ser nulo ou branco ??
      */
      public void setNome(String newNome) {

      nome = newNome;
      
      }
      
      /**
      
    • Atualiza o valor do tipo do cliente.

    • @param newTipo o novo valor.

    • @see Q1 Ser que o tipo de um cliente pode ser nulo
      
      */
      
      public void setTipo(TipoCliente newtipo) {
      
      this.tipo = newtipo;
      
      }
      
    public String toString(){
    
    return "Nome: +this.getNome()+ e Cpf: "+this.getCpf();
    
    }
    
    }
    

O TipoCliente é do Tipo ENUM, vejam o codigo

package br.com.qualiti.negocio;
/**

  • Enum que representa o tipo do cliente.
  • @author J�nior [email removido]
  • @version 1.0
    /
    public enum TipoCliente {
    /
    * Defini��o de um cliente de mais alta import�ncia. /
    VIP,
    /
    * Defini��o de um cliente de mais importante. /
    CLASS,
    /
    * Defini��o de um cliente comum. */
    ESPECIAL;
    }

como farei no result set para pegar o tipo enum? Abraços !!!

7 Respostas

otaviojava

Você pode pegar o enum a partir de uma String ou então a partir de um int

darksteel3000

Onde pego isso, em qual classe e como? :slight_smile: Abração !!!

otaviojava
Teste a;
	 a=Teste.valueOf("A");

 public enum Teste{
	  A,B
  }
otaviojava

Dá uma olhada neste post.
é um problema um pouco semelhante ao seu.
Se não ajudar só falar.

http://www.guj.com.br/java/230202-como-obter-o-idice-de-uma-variavel-dentro-de-um-enum-

drigo.angelo

Por favor, formate o código quando for posta-lo, fica bem mais facil de te ajudar. De uma olhada neste topico.

darksteel3000

Fiz assim, compilou normal vamo ver se pega hehe:

<a class="mention" href="/u/override">@Override</a>

public Cliente procurar(String cpf) throws ClienteInexistenteException {

Cliente cliente = null;

TipoCliente tipo = null;

ResultSet rs = null;

String sql = “select * from cliente_endereco ce where ce.cpf = '”+cliente.getCpf()+"’";

try {

Statement stmt = DbConection.conecta().createStatement();

rs = stmt.executeQuery(sql);
if (rs.next()) {
			cliente = new Cliente(rs.getString("cpf"), rs.getString("nome"),
							  tipo.valueOf(rs.getString("tipo")), rs.getString("cep"),
							  rs.getString("numero"), rs.getString("complemento"));
		}
	} catch (SQLException e) {
		throw new RuntimeException(e.getMessage());
	} finally {
		
	}
    return cliente;
}

e ai que q vc acha amigo? Abração !!!

darksteel3000

Ola amigo, sim pegou tranquilo, muito obrigado !!!

Criado 28 de janeiro de 2011
Ultima resposta 28 de jan. de 2011
Respostas 7
Participantes 3