Exemplo DAO (versão intermediária 4, consultaPorCodigo) - 11/09
Página 1 de 1
Exemplo DAO (versão intermediária 4, consultaPorCodigo) - 11/09
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);
}
}
}
- 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();
}
}
}
Tópicos semelhantes
» Exemplo DAO (versão intermediária 1) - 10/09
» Exemplo DAO (versão intermediária 2) - 10/09
» Exemplo DAO (versão intermediária 3, DAOException) - 11/09
» Exemplo - Projeto contendo usuário-perfil (exemplo de tela com chave estrangeira) - 20/09
» Exemplo Date
» Exemplo DAO (versão intermediária 2) - 10/09
» Exemplo DAO (versão intermediária 3, DAOException) - 11/09
» Exemplo - Projeto contendo usuário-perfil (exemplo de tela com chave estrangeira) - 20/09
» Exemplo Date
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos