Problemas com utilização de DAO para pesquisa no banco de dados SQL2005[RESOLVIDO]

3 respostas
AndyRamos

Pessoal, boa tarde !

Eu estou começando com mais regularidade o fórum do GUJ. Eu estou com uma dúvida / problema com relação a utilização do pattern DAO para pesquisa no banco de dados. Vou postar o código logo abaixo:

DAO

public FuncionarioBean pesquisaPorID(String IDAcesso)throws SQLException {

        logger.info("Pesquisando usuário no banco de dados através da chave de acesso...");
        PreparedStatement statement = this.conexao.prepareStatement("select TCP_IP_ACCESS as ipAcesso, TCP_ID_ACCESS as chaveAcesso, convert(varchar(10),TCP_DTCREATE,103)as dataCriacao from EME_TCP_CONTROL as tcp where tcp.TCP_ID_ACCESS = ?");
        statement.setString(1, IDAcesso);
        FuncionarioBean funcionario = new FuncionarioBean();
        ResultSet resultado = statement.executeQuery();
        if(!resultado.next()){

            logger.warn("ATENÇÃO !!! Nenhum registro foi encontrado !");
            return null;

        } else {

            funcionario.setIp_acesso(resultado.getString("ipAcesso"));
            funcionario.setChave_token_acesso(resultado.getString("chaveAcesso"));
            funcionario.setData_criacao(resultado.getString("dataCriacao"));
            return funcionario;

        }

    }
FuncionarioBean
public class FuncionarioBean implements Serializable {
   
    private static final long serialVersionUID = 1L;

    private String cnpj_empresa;
    private String username;
    private String password;
    private String name;
    private String email;
    private String endereco;
    private String data_criacao;
    private String data_ativacao;
    private String ip_acesso;
    private String chave_token_acesso;
    private int sysactivate;

    public String getCnpj_empresa() {
        return cnpj_empresa;
    }

    public void setCnpj_empresa(String cnpj_empresa) {
        this.cnpj_empresa = cnpj_empresa;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
    
    public String getEndereco(){
        return endereco;
    }
    
    public void setEndereco(String endereco){
        this.endereco = endereco;
    }
    
    public String getData_criacao() {
        return data_criacao;
    }

    public void setData_criacao(String data_criacao) {
        this.data_criacao = data_criacao;
    }

    public String getData_ativacao() {
        return data_ativacao;
    }

    public void setData_ativacao(String data_ativacao) {
        this.data_ativacao = data_ativacao;
    }

    public String getIp_acesso() {
        return ip_acesso;
    }

    public void setIp_acesso(String ip_acesso) {
        this.ip_acesso = ip_acesso;
    }

    public String getChave_token_acesso() {
        return chave_token_acesso;
    }

    public void setChave_token_acesso(String chave_token_acesso) {
        this.chave_token_acesso = chave_token_acesso;
    }

    public int getSysactivate() {
        return sysactivate;
    }

    public void setSysactivate(int sysactivate) {
        this.sysactivate = sysactivate;
    }

    public FuncionarioBean() {
    }
}

Classe que testa os procedimentos realizados:

package br.com.novaopc.edicomex.testes;

import br.com.novaopc.edicomex.jdbc.dao.FuncionarioDAO;
import br.com.novaopc.edicomex.model.beans.FuncionarioBean;
import java.sql.SQLException;
import java.util.Scanner;

public class TestePesquisaFuncionario {

    public static void main (String [] args) throws SQLException {

        Scanner entrada = new Scanner(System.in);
        System.out.println("Digite a sua chave de acesso: ");
        String chave_acesso = entrada.next();
      
        FuncionarioDAO dao = new FuncionarioDAO();
        dao.pesquisaPorID(chave_acesso);
        FuncionarioBean funcionario = new FuncionarioBean();

        System.out.println("IP de Acesso.: " + funcionario.getIp_acesso());
        System.out.println("Chave de acesso.: " + funcionario.getChave_token_acesso());
        System.out.println("Data de Criação.: " + funcionario.getData_criacao());
        
        dao.fecharConexoes();

    }

}

Porém o resultado disso é que na classe que faz o teste dos procedimentos do DAO, ela retorna sempre um valor Null para as informações que eu quero trazer. Até o momento eu estou procurando saber onde é que estou errando e aceito de muito bom grado a ajuda da comunidade se for possível. Segue abaixo o resultado que é retornado na execução da classe.

Digite a sua chave de acesso:
[telefone removido]
- Obtendo a conexão com o banco de dados através de FuncionarioDAO
- ::: NovaOpc - Gerenciador de Conexões de banco de dados :::
- Buscando conexão com o banco de dados...
- Definindo URL de conexão com o banco de dados...
- Obtendo driver de conexão com o banco SQLServer 2005
- Pesquisando usuário no banco de dados através da chave de acesso...
IP de Acesso.: null
Chave de acesso.: null
Data de Criação.: null
- Verificando se existem conexões a serem fechadas...
- Existem conexões ainda abertas ? true
- Fechando a conexão com o banco de dados...
- Conexão desta vez está fechada ? true

Agradeço a todos que possam me ajudar e desejo à todos da comunidade, um excelente natal e um 2009 maravilhoso !!!

Anderson.

3 Respostas

AndyRamos

Pessoal da comunidade, boa tarde à todos !

Após mais algumas “quebradas” de cabeça por alguns instantes e visualizar toda a estrutura de código novamente, eu consegui resolver o problema que eu havia postado neste fórum.

De qualquer forma eu agradeço à todos e novamente reforço os meus votos de um bom natal e um excelente 2009 à todos vocês !

Anderson.

felipeguerra

FuncionarioDAO dao = new FuncionarioDAO(); dao.pesquisaPorID(chave_acesso); FuncionarioBean funcionario = new FuncionarioBean();
Vc percebeu alguma coisa de errado aqui?
Ou melhor, faltando?
Concorda que as propriedades do seu objeto funcionario sempre estarão com os valores da inicialização?

AndyRamos

Olá Felipe…

Eu percebi isso sim… eu mudei os parâmetros e com isso os valores que eu queria passaram a ser retornados.

Nesta parte.:

FuncionarioDAO dao = new FuncionarioDAO();     
dao.pesquisaPorID(chave_acesso);     
FuncionarioBean funcionario = new FuncionarioBean();

Eu substitui por isso:

FuncionarioDAO dao = new FuncionarioDAO();     
FuncionarioBean funcionario = dao.pesquisaPorID(chave_acesso);

Agradeço pela sua resposta !

Anderson.

Criado 22 de dezembro de 2008
Ultima resposta 22 de dez. de 2008
Respostas 3
Participantes 2