Geração TEC - Lages - Maio/2013
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Exemplo de interfaces - DAO

Ir para baixo

Exemplo de interfaces - DAO Empty Exemplo de interfaces - DAO

Mensagem por Admin Seg maio 20, 2013 8:17 pm

Este é um exemplo um pouco mais complexo, mas é bastante realista

AplicacaoPrincipal
Código:

public class AplicacaoPrincipal {
   public static void main(String[] args) {
      Cliente cliente = new Cliente();
      cliente.setCdCliente(1);
      cliente.setNmCliente("Charles");
      cliente.setObservacoes("Sem observações");
      //Cria um objeto cliente. Em uma aplicação real
      //este objeto teria sido criado baseado nos valores que
      //o usuário teria digitado
      
      
      DAOFactory factory = new DAOFactory();
      //Uma DAOFactory é um objeto que tem a capacidade
      //de fabricar objetos do tipo DAO.
      //Veja a classe para mais detalhes
      
      ClienteDAO clienteDAO = factory.getClienteDAO();
      //A factory fornece um objeto que implementa a interface ClienteDAO
      //Não há garantias de que será uma HbnClienteDAO ou uma JDBCClienteDAO
      //Porém, tanto faz, pois as duas implementam a interface ClienteDAO,
      //ou seja, qualquer que seja a classe, vai implementar o metodo
      //saveCliente
      
      clienteDAO.saveCliente(cliente);
      //pega o objeto referenciado por clienteDAO (seja lá qual for sua classe)
      //e manda ele salvar o cliente no banco de dados
   }
}

Cliente
Código:

public class Cliente {
   private int cdCliente;
   private String nmCliente;
   private String observacoes;

   public int getCdCliente() {
      return cdCliente;
   }

   public void setCdCliente(int cdCliente) {
      this.cdCliente = cdCliente;
   }

   public String getNmCliente() {
      return nmCliente;
   }

   public void setNmCliente(String nmCliente) {
      this.nmCliente = nmCliente;
   }

   public String getObservacoes() {
      return observacoes;
   }

   public void setObservacoes(String observacoes) {
      this.observacoes = observacoes;
   }
}

DAOFactory
Código:

import java.util.Scanner;

public class DAOFactory {
   
   private int tipoBD;
   
   public static Scanner scanner = new Scanner(System.in);   
   
   public DAOFactory() {
      //Uma DAOFactory mais realista leria o tipoBD a partir
      //de um arquivo de configurações. Para fins de simplicidade
      //nossa DAOFactory pergunta diretamente para o usuário digitar
      //o tipo de DAO que ela deverá criar
      
      System.out.println("Digite o tipo de banco de dados que está escrito no arquivo de configurações");
      System.out.println("1 - JDBC, 2 - Hibernate");
      tipoBD = scanner.nextInt();
   }
   
   public ClienteDAO getClienteDAO() {
      //Retorna um objeto que implementa a interface ClienteDAO
      //A classe do objeto vai depender do tipoBD.
      
      if (tipoBD == 1) {
         return new JDBCClienteDAO();
      } else if (tipoBD == 2) {
         return new HbnClienteDAO();
      } else {
         //lanca um erro ao usuário
         throw new RuntimeException("Tipo de banco de dados desconhecido!");
      }
   }
}

ClienteDAO
Código:

public interface ClienteDAO {
   //Representa um tipo de objeto com a capacidade de salvar
   //clientes em um banco de dados
   
   public void saveCliente(Cliente cliente);
}

JDBCClienteDAO
Código:


public class JDBCClienteDAO implements ClienteDAO{

   //Classe que representa o objeto que tem a capacidade
   //de gravar clientes no banco de dados utilizando
   //a tecnologia JDBC
   
   public void saveCliente(Cliente cliente) {
      System.out.println("Fingindo que está gravando cliente usando JDBC");
      System.out.println("Nome do cliente: " + cliente.getNmCliente());
   }
   
}

HbnClienteDAO
Código:


public class HbnClienteDAO implements ClienteDAO{
   //Classe que representa o objeto que tem a capacidade
   //de gravar clientes no banco de dados utilizando
   //a tecnologia hibernate
   
   public void saveCliente(Cliente cliente) {
      System.out.println("Fingindo que está gravando cliente usando Hibernate");
      System.out.println("Nome do cliente: " + cliente.getNmCliente());
   }
}


Admin
Admin

Mensagens : 82
Data de inscrição : 06/05/2013

https://geracaoteclages.forumeiros.com

Ir para o topo Ir para baixo

Ir para o topo


 
Permissões neste sub-fórum
Não podes responder a tópicos