Exemplo DAO (versão intermediária 4, consultaPorCodigo) - 11/09

Ir em baixo

Exemplo DAO (versão intermediária 4, consultaPorCodigo) - 11/09

Mensagem por Admin em Seg Set 16, 2013 4:11 pm

ProdutoDAO.java
Código:

package br.gov.geracaotecsc.exemplodao.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import br.gov.geracaotecsc.exemplodao.dados.Produto;

public class ProdutoDAO extends GenericDAO{
   public void cadastreProduto(Produto produto) throws DAOException{
      Connection connection = null;
      PreparedStatement pstmt = null;
      try {
         connection = getConnection();         
         String sql = "INSERT INTO produto (codigo, nome, preco) values (?, ?, ?)";
         pstmt = connection.prepareStatement(sql);
         
         pstmt.setInt(1, produto.getCodigo());
         pstmt.setString(2, produto.getNome());
         pstmt.setDouble(3, produto.getPreco());
         
         pstmt.executeUpdate();
      } catch (Exception e) {         
         throw new DAOException(
               "Ocorreu um erro no banco de dados " +
               "ao cadastrar o produto", e);
      } finally {
         close(pstmt);
         close(connection);
      }      
   }
   
   public List<Produto> listeTodosProdutos() throws DAOException {
      Connection connection = null;
      PreparedStatement pstmt = null;
      ResultSet rs = null;
      try {
         connection = getConnection();         
         String sql = "SELECT codigo, nome, preco FROM produto ORDER BY codigo";
         pstmt = connection.prepareStatement(sql);
                  
         rs = pstmt.executeQuery();
         
         List<Produto> lista = new ArrayList<Produto>();
         while (rs.next()) {
            int codigo = rs.getInt("codigo");
            String nome = rs.getString("nome");
            double preco = rs.getDouble("preco");
            
            lista.add(new Produto(codigo, nome, preco));
         }
         
         return lista;
      } catch (Exception e) {         
         throw new DAOException("Ocorreu um erro ao listar os produtos");
      } finally {
         close(rs);
         close(pstmt);
         close(connection);
      }            
   }
   
   public Produto consulteProdutoPorCodigo(int codigoAProcurar) throws DAOException {
      Connection connection = null;
      PreparedStatement pstmt = null;
      ResultSet rs = null;
      try {
         connection = getConnection();         
         String sql = "SELECT codigo, nome, preco FROM produto WHERE codigo = ?";
         pstmt = connection.prepareStatement(sql);

         pstmt.setInt(1, codigoAProcurar);
         
         rs = pstmt.executeQuery();

         if (rs.next()) {
            int codigo = rs.getInt("codigo");
            String nome = rs.getString("nome");
            double preco = rs.getDouble("preco");
            
            return new Produto(codigo, nome, preco);
         } else {
            return null;
         }
      } catch (Exception e) {         
         throw new DAOException("Ocorreu um erro ao localizar um produto. Codigo: " + codigoAProcurar);
      } finally {
         close(rs);
         close(pstmt);
         close(connection);
      }                  
   }

}
ControleProdutoApp.java
Código:

package br.gov.geracaotecsc.exemplodao;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintWriter;
import java.util.List;

import br.gov.geracaotecsc.exemplodao.dados.Produto;
import br.gov.geracaotecsc.exemplodao.dao.DAOException;
import br.gov.geracaotecsc.exemplodao.dao.ProdutoDAO;
import br.gov.geracaotecsc.ui.console.GenericConsoleUI;

public class ControleProdutoApp {

   private GenericConsoleUI ui;
   private PrintWriter logErro;

   public static void main(String[] args) {
      new ControleProdutoApp().run();
   }

   public ControleProdutoApp() {
      ui = new GenericConsoleUI();
      try {
         logErro = new PrintWriter(
            new FileOutputStream(
               new File("C:\\temp\\logAplicacao.txt"), true));
      } catch (FileNotFoundException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
      }
   }
   
   public void run() {
      int opcao = ui.facaPerguntaInt("O que vc quer fazer? (1-Cadastrar produto, 2-Listar todos produtos, 3-Consultar por codigo)");
      if (opcao == 1) {
         abrirCadastroProduto();         
      } else if (opcao == 2) {
         abrirListagemProdutos();
      } else if (opcao == 2) {
         abrirConsultaProdutoPorCodigo();
      } else {
         System.out.println("Opcao invalida");
      }
   }

   private void abrirConsultaProdutoPorCodigo() {
      int codigoAProcurar = ui.facaPerguntaInt("Digite o codigo do produto a ser localizado: ");
      
      ProdutoDAO produtoDAO = new ProdutoDAO();
      
      try {
         Produto prod = produtoDAO.consulteProdutoPorCodigo(codigoAProcurar);
         
         if (prod == null) {
            System.out.println("Produto nao encontrado!");
         } else {
            System.out.println(
                  "Código:" + prod.getCodigo() +
                  "\tNome: " + prod.getNome() +
                  "\tPreço:" + prod.getPreco());
         }
         
      } catch (DAOException e) {
         System.out.println("Prezado usuário, infelizmente ocorreu um erro ao processar sua requisição. Mil desculpas.");
         e.printStackTrace(logErro);
         logErro.flush();
      }
   }

   private void abrirListagemProdutos() {
      ProdutoDAO produtoDAO = new ProdutoDAO();
      try {
         List<Produto> listaProdutos = produtoDAO.listeTodosProdutos();
         if (listaProdutos.isEmpty()) {
            System.out.println("Não há registros");
         } else {
            for (Produto prod: listaProdutos) {
               System.out.println(
                     "Código:" + prod.getCodigo() +
                     "\tNome: " + prod.getNome() +
                     "\tPreço:" + prod.getPreco());
            }
         }
      } catch (DAOException e) {
         System.out.println("Prezado usuário, infelizmente ocorreu um erro ao processar sua requisição. Mil desculpas.");
         e.printStackTrace(logErro);
         logErro.flush();
      }
      
   }

   private void abrirCadastroProduto() {
      int codigo = ui.facaPerguntaInt("Digite o codigo do produto");
      String nome = ui.facaPergunta("Digite o nome do produto");
      double preco = ui.facaPerguntaDouble("Digite o preco do produto");
      
      Produto produto = new Produto(codigo, nome, preco);
      ProdutoDAO produtoDAO = new ProdutoDAO();
      try {
         produtoDAO.cadastreProduto(produto);
         System.out.println("Produto cadastrado com sucesso");
      } catch (DAOException e) {
         System.out.println("Prezado usuário, infelizmente ocorreu um erro ao processar sua requisição. Mil desculpas.");
         e.printStackTrace(logErro);
         logErro.flush();
      }
   }
}

Admin
Admin

Mensagens : 123
Data de inscrição : 01/07/2013

Ver perfil do usuário http://geracaotecjava.forumbrasil.net

Voltar ao Topo Ir em baixo

Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum