Código-Fonte da Prática 04

Documentos relacionados
Padrões de Projeto e Persistência com DAO

Código-Fonte da Prática 02

Funcionamento da Aplicação. Simulações do funcionamento. Simulação SAC

De forma simples, para a execução de comandos SQL com JDBC, precisa-se da instancia de três classes Java. São elas: Nome da classe Função

Programação Comercial Sumário

Web Services. EclipseSDK/DB2 Construindo/Consumindo Serviços

Java - Conexão ao Banco de Dados usando JDBC

Lista de exercícios I - RESPOSTAS Servlets e banco de dados

Listando, gravando, alterando e excluindo registro do banco de dados com JSP

Drive MySql de conexão para Eclipse

Java JDBC Aplicação Java com Acesso a um SGBD. Ricardo Terra (rterrabh [at] gmail.com) Java JDBC Maio, 2010

Aplicativos Web com Orientação a Objetos

Exercícios de fixação: Listas

Persistência de Objetos no SGBD PostgreSQL, Utilizando as APIs: JDBC, JDK, Swing e Design Patteners DAO.

DATA ACCESS OBJECT (DAO)

Persistência Java para Web com MySQL

Banco de Dados. Banco de Dados Parte 2. Alcides Pamplona Alcides Pamplona Linguagem de Programação CESBD 2010

Programação Orientada a Objetos II


Programação Orientada a Objetos JDBC Java Database Connectivity

Desenvolvimento Web TCC Turma A-1

Implementar um exemplo de relacionamento entre classes um para muitos (1:N) e um para um (1:1). Sistema para uma Promotora de Evento Agenda Anual

Desenvolvimento de Aplicaçõ. ções em Java

show databases Programação Comercial Walderson Shimokawa 1

Atividade JSP com Banco de Dados

RESPOSTA: import java.util.arraylist; import java.util.list; class CarrinhoDeCompras2 { List<Produto> produtos;

Projeto webservicejax

Autenticação e Autorização

Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java

JDBC. Siga as instruções para instalar o banco de dados H2 e criar a tabela Alunos.

JDBC. Prof. Márcio Bueno

Agenda. Instalação e configuração. Processamento de comandos SQL com JDBC. Driver JDBC Criação da classe de conexão

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas

TUTORIAL DE INTRODUÇÃO AO CEWOLF

Acesso a banco de dados

JAVA COM BANCO DE DADOS PROFESSORA DANIELA PIRES

Integrando Java com Banco de Dados

Criando um aplicação simples com JAVA e MySQL usando NetBeans Parte I

Programação Orientada a Objetos II

Objetivo do programa: Implementação de um analisador de Logs do Servidor Web com base nos requisitos da unidade curricular de Estatística.

MANIPULAÇÃO DE BANCO DE DADOS UTILIZANDO INTERFACE GRÁFICA

nome = n; cargo = c; salario = s; public void print() { System.out.println(nome cargo salario); public void aumento( double fator){

Tipos, Literais, Operadores

Tipos, Literais, Operadores

Especialização em web com interfaces ricas

Desenvolvimento de Sistemas de Informação

Java na WEB Banco de Dados

Programação Estruturada e Orientada a Objetos

Modulo 8 - Padrão DAO (Dta Access Object) Prof. Sheila Cáceres

Utilizando Swing com Banco de Dados

Manipulação de Banco de Dados com Java 1. Objetivos

1. Estude e implemente a classe Exemplo1 apresentada abaixo:

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

Laboratório de Programação. Aula 12 Java 5COP088. Aula 12 Exceções Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr

Francisco Roeder. Orientador: Prof. Adilson Vahldick

MsC. João Maria MsC. Liviane Melo

Design Patterns (Factory Method, Prototype, Singleton)

JavaServer Faces JSF

JDBC (Java Database Connectivity) Padrão de Projeto DAO (Data Access Object) Roteiro para instalação do banco de dados e do driver JDBC

Programação Orientada a Objetos

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Fundamentos de Banco de Dados Postgre com Sql

JDBC com Banco de Dados Standalone

Curso: Desenvolvimento Java

Tutorial de NetBeans IDE Acessando banco de dados com Struts Data Source

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this.

INSTRUÇÕES. O tempo disponível para a realização das duas provas e o preenchimento da Folha de Respostas é de 5 (cinco) horas no total.

Driver Mysql para Banco de Dados. Conexão com um Banco de Dados

Módulo 5 - JDBC java.sql - Conexão com Banco de Dados

Na classe Utils.java no package utils existe o método readdatefromconsole():

AULA 8 CRIANDO UMA CLASSE EM PHP INTERAGINDO COM BANCO DE DADOS - COM RELACIONAMENTO ENTRE TABELAS

Manipulação de Banco de Dados com Java. Ms. Bruno Crestani Calegaro Maio/ 2015

DSS 08/09. Camada de Dados - JDBC. Aula 1. António Nestor Ribeiro /António Ramires Fernandes/ José Creissac Campos {anr,arf,jfc}@di.uminho.

REST. Representational State Transfer. É um estilo arquitetural usado por muitas aplicações Web para estender as suas funcionalidades.

// quando o estado do Sujeito muda

Aula Prática JBCD - Introdução

Associação 1:1. Baseado no Diagrama de Classe a seguir, iremos criar as classes de Modelagem que compõem a Associação de Piloto com Carro.

Linguagem de Programação II Implementação

Banco de dados POO Márcio Delamaro. Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP

Código do Sistema Ponto de Vendas

SQL - Consultas

JDBC. Java DataBase Connectivity

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo )

Leonardo Gresta Paulino Murta

Como criar um banco de dados usando o mysql

Gerador de código JSP baseado em projeto de banco de dados MySQL

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Mapeando Relacionamentos Entre Classes com Anotações Hibernate Por: Raphaela Galhardo Fernandes Gleydson de Azevedo F. Lima

Tutorial de Aplicação Simples usando Web Forms e MySQL. Luiz Eduardo Guarino de Vasconcelos

Programação de Computadores II TCC /Turma A 1

Tratamento de Erros. Sérgio Luiz Ruivace Cerqueira

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo )

Paradigmas da Programação PPROG. Tipos Enumerados. Nelson Freire (ISEP DEI-PPROG 2013/14) 1/20

Preparação. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 10/12/2013

Lista 02 Sistema de Banco de Dados CAP 241 Computação Aplicada I

Armazenamento de dados

FTIN FORMAÇÃO TÉCNICA EM INFORMÁTICA. Módulo de Programação Prof. Bruno Maciel

Transcrição:

Código-Fonte da Prática 04 Sumário Classe CategoriaDAO... 2 Classe ClienteDAO... 5 Classe FornecedorDAO... 9 Classe ProdutoDAO... 12 Classe VendedorDAO... 16 Classe PedidoDAO... 19 Programação Comercial Walderson Shimokawa 1

Classe CategoriaDAO package br.edu.univag.pedido.dao; import br.edu.univag.pedido.vo.categoria; import br.edu.univag.util.sql.conexaobd; import br.edu.univag.util.sql.dao; import java.sql.preparedstatement; import java.sql.resultset; import java.sql.sqlexception; import java.util.arraylist; import java.util.collection; public class CategoriaDAO extends DAO { private static final String SQL_INSERT = "insert into categoria " + "(nomcategoria) values (?)"; private static final String SQL_UPDATE = "update categoria " + "set nomcategoria =? " + "where codcategoria =?"; private static final String SQL_DELETE = "delete from categoria " + "where codcategoria =?"; private static final String SQL_SELECT_PK = "select " + "codcategoria, nomcategoria " + "from categoria " + "where codcategoria =?"; private static final String SQL_SELECT_ALL = "select " + "codcategoria, nomcategoria " + "from categoria " + "order by nomcategoria"; public CategoriaDAO(ConexaoBD conbd) { super(conbd); public int insert(categoria categoria) throws SQLException { ps = conbd.prepararsql(sql_insert, true); ps.setstring(1, categoria.getdescricao()); int resposta = ps.executeupdate(); if (resposta == 1) { //um registro foi inserido int cod = (int) conbd.getchave(ps); //obtém o código gerado pelo banco categoria.setcodigo(cod); //preenche o atributo com o código do categoria finally { public int update(categoria categoria) throws SQLException { try (PreparedStatement ps = conbd.prepararsql(sql_update)) { Programação Comercial Walderson Shimokawa 2

ps.setstring(1, categoria.getdescricao()); ps.setint(2, categoria.getcodigo()); return ps.executeupdate(); public int delete(int codcategoria) throws SQLException { try (PreparedStatement ps = conbd.prepararsql(sql_delete)) { ps.setint(1, codcategoria); return ps.executeupdate(); private Categoria getbean(resultset rs) throws SQLException { Categoria resposta = new Categoria(); resposta.setcodigo(rs.getint(1)); resposta.setdescricao(rs.getstring(2)); public Categoria select(int codcategoria) throws SQLException { ps = conbd.prepararsql(sql_select_pk); ps.setint(1, codcategoria); if (rs.next()) { return getbean(rs); return null; finally { public Collection<Categoria> select() throws SQLException { ps = conbd.prepararsql(sql_select_all); ArrayList<Categoria> resposta = new ArrayList<>(); while (rs.next()) { resposta.add(getbean(rs)); Programação Comercial Walderson Shimokawa 3

finally { Programação Comercial Walderson Shimokawa 4

Classe ClienteDAO package br.edu.univag.pedido.dao; import br.edu.univag.pedido.tipo.tipoestadocivil; import br.edu.univag.pedido.tipo.tiposexo; import br.edu.univag.pedido.tipo.tipounidadefederada; import br.edu.univag.pedido.vo.cliente; import br.edu.univag.util.sql.conexaobd; import br.edu.univag.util.sql.dao; import java.sql.preparedstatement; import java.sql.resultset; import java.sql.sqlexception; import java.util.arraylist; import java.util.collection; public class ClienteDAO extends DAO { private static final String SQL_INSERT = "insert into cliente " + "(nomcliente, endcliente, numendcliente, comendcliente, cependcliente, " + "baiendcliente, cidendcliente, estendcliente, telcliente, sexo, " + "estcivil) values (?,?,?,?,?,?,?,?,?,?,?)"; private static final String SQL_UPDATE = "update cliente " + "set nomcliente =?, endcliente =?, numendcliente =?, comendcliente =?, " + "cependcliente =?, baiendcliente =?, cidendcliente =?, estendcliente =?, " + "telcliente =?, sexo =?, estcivil =? " + "where codcliente =?"; private static final String SQL_DELETE = "delete from cliente " + "where codcliente =?"; private static final String SQL_SELECT_PK = "select " + "codcliente, nomcliente, endcliente, numendcliente, comendcliente, cependcliente, " + "baiendcliente, cidendcliente, estendcliente, telcliente, sexo, " + "estcivil " + "from cliente " + "where codcliente =?"; private static final String SQL_SELECT_ALL = "select " + "codcliente, nomcliente, endcliente, numendcliente, comendcliente, cependcliente, " + "baiendcliente, cidendcliente, estendcliente, telcliente, sexo, " + "estcivil " + "from cliente " + "order by nomcliente"; public ClienteDAO(ConexaoBD conbd) { super(conbd); public int insert(cliente cliente) throws SQLException { ps = conbd.prepararsql(sql_insert, true); ps.setstring(1, cliente.getnome()); ps.setstring(2, cliente.getendereco()); ps.setstring(3, cliente.getnumero()); ps.setstring(4, cliente.getcomplemento()); Programação Comercial Walderson Shimokawa 5

ps.setstring(5, cliente.getcep()); ps.setstring(6, cliente.getbairro()); ps.setstring(7, cliente.getcidade()); ps.setstring(8, cliente.getuf().getsiglaunidadefederada()); ps.setstring(9, cliente.gettelefone()); ps.setstring(10, cliente.getsexo().getsiglasexo()); ps.setstring(11, cliente.getestcivil().getsiglaestadocivil()); int resposta = ps.executeupdate(); if (resposta == 1) { //um registro foi inserido int cod = (int) conbd.getchave(ps); //obtém o código gerado pelo banco cliente.setcodigo(cod); //preenche o atributo com o código do cliente finally { public int update(cliente cliente) throws SQLException { try (PreparedStatement ps = conbd.prepararsql(sql_update)) { ps.setstring(1, cliente.getnome()); ps.setstring(2, cliente.getendereco()); ps.setstring(3, cliente.getnumero()); ps.setstring(4, cliente.getcomplemento()); ps.setstring(5, cliente.getcep()); ps.setstring(6, cliente.getbairro()); ps.setstring(7, cliente.getcidade()); ps.setstring(8, cliente.getuf().getsiglaunidadefederada()); ps.setstring(9, cliente.gettelefone()); ps.setstring(10, cliente.getsexo().getsiglasexo()); ps.setstring(11, cliente.getestcivil().getsiglaestadocivil()); ps.setint(12, cliente.getcodigo()); return ps.executeupdate(); public int delete(int codcliente) throws SQLException { try (PreparedStatement ps = conbd.prepararsql(sql_delete)) { ps.setint(1, codcliente); return ps.executeupdate(); private Cliente getbean(resultset rs) throws SQLException { Cliente resposta = new Cliente(); resposta.setcodigo(rs.getint(1)); resposta.setnome(rs.getstring(2)); resposta.setendereco(rs.getstring(3)); resposta.setnumero(rs.getstring(4)); resposta.setcomplemento(rs.getstring(5)); resposta.setcep(rs.getstring(6)); Programação Comercial Walderson Shimokawa 6

resposta.setbairro(rs.getstring(7)); resposta.setcidade(rs.getstring(8)); resposta.setuf(tipounidadefederada.get(rs.getstring(9))); resposta.settelefone(rs.getstring(10)); resposta.setsexo(tiposexo.get(rs.getstring(11))); resposta.setestcivil(tipoestadocivil.get(rs.getstring(12))); public Cliente select(int codcliente) throws SQLException { ps = conbd.prepararsql(sql_select_pk); ps.setint(1, codcliente); if (rs.next()) { return getbean(rs); return null; finally { public Collection<Cliente> select() throws SQLException { ps = conbd.prepararsql(sql_select_all); ArrayList<Cliente> resposta = new ArrayList<>(); while (rs.next()) { resposta.add(getbean(rs)); finally { Programação Comercial Walderson Shimokawa 7

Programação Comercial Walderson Shimokawa 8

Classe FornecedorDAO package br.edu.univag.pedido.dao; import br.edu.univag.pedido.tipo.tipounidadefederada; import br.edu.univag.pedido.vo.fornecedor; import br.edu.univag.util.sql.conexaobd; import br.edu.univag.util.sql.dao; import java.sql.preparedstatement; import java.sql.resultset; import java.sql.sqlexception; import java.util.arraylist; import java.util.collection; public class FornecedorDAO extends DAO { private static final String SQL_INSERT = "insert into fornecedor " + "(nomfornecedor, endfornecedor, numendfornecedor, comendfornecedor, " + "cependfornecedor, baiendfornecedor, cidendfornecedor, estendfornecedor, " + "telfornecedor, faxfornecedor) values (?,?,?,?,?,?,?,?,?,?)"; private static final String SQL_UPDATE = "update fornecedor " + "set nomfornecedor =?, endfornecedor =?, numendfornecedor =?, " + "comendfornecedor =?, cependfornecedor =?, baiendfornecedor =?, " + "cidendfornecedor =?, estendfornecedor =?, telfornecedor =?, " + "faxfornecedor =? " + "where codfornecedor =?"; private static final String SQL_DELETE = "delete from fornecedor " + "where codfornecedor =?"; private static final String SQL_SELECT_PK = "select " + "codfornecedor, nomfornecedor, endfornecedor, numendfornecedor, " + "comendfornecedor, cependfornecedor, baiendfornecedor, cidendfornecedor, " + "estendfornecedor, telfornecedor, faxfornecedor " + "from fornecedor " + "where codfornecedor =?"; private static final String SQL_SELECT_ALL = "select " + "codfornecedor, nomfornecedor, endfornecedor, numendfornecedor, " + "comendfornecedor, cependfornecedor, baiendfornecedor, cidendfornecedor, " + "estendfornecedor, telfornecedor, faxfornecedor " + "from fornecedor " + "order by nomfornecedor"; public FornecedorDAO(ConexaoBD conbd) { super(conbd); public int insert(fornecedor fornecedor) throws SQLException { ps = conbd.prepararsql(sql_insert, true); ps.setstring(1, fornecedor.getnome()); ps.setstring(2, fornecedor.getendereco()); ps.setstring(3, fornecedor.getnumero()); ps.setstring(4, fornecedor.getcomplemento()); ps.setstring(5, fornecedor.getcep()); ps.setstring(6, fornecedor.getbairro()); ps.setstring(7, fornecedor.getcidade()); ps.setstring(8, fornecedor.getuf().getsiglaunidadefederada()); ps.setstring(9, fornecedor.gettelefone()); ps.setstring(10, fornecedor.getfax()); Programação Comercial Walderson Shimokawa 9

fornecedor int resposta = ps.executeupdate(); if (resposta == 1) { //um registro foi inserido int cod = (int) conbd.getchave(ps); //obtém o código gerado pelo banco fornecedor.setcodigo(cod); //preenche o atributo com o código do finally { public int update(fornecedor fornecedor) throws SQLException { try (PreparedStatement ps = conbd.prepararsql(sql_update)) { ps.setstring(1, fornecedor.getnome()); ps.setstring(2, fornecedor.getendereco()); ps.setstring(3, fornecedor.getnumero()); ps.setstring(4, fornecedor.getcomplemento()); ps.setstring(5, fornecedor.getcep()); ps.setstring(6, fornecedor.getbairro()); ps.setstring(7, fornecedor.getcidade()); ps.setstring(8, fornecedor.getuf().getsiglaunidadefederada()); ps.setstring(9, fornecedor.gettelefone()); ps.setstring(10, fornecedor.getfax()); ps.setint(11, fornecedor.getcodigo()); return ps.executeupdate(); public int delete(int codfornecedor) throws SQLException { try (PreparedStatement ps = conbd.prepararsql(sql_delete)) { ps.setint(1, codfornecedor); return ps.executeupdate(); private Fornecedor getbean(resultset rs) throws SQLException { Fornecedor resposta = new Fornecedor(); resposta.setcodigo(rs.getint(1)); resposta.setnome(rs.getstring(2)); resposta.setendereco(rs.getstring(3)); resposta.setnumero(rs.getstring(4)); resposta.setcomplemento(rs.getstring(5)); resposta.setcep(rs.getstring(6)); resposta.setbairro(rs.getstring(7)); resposta.setcidade(rs.getstring(8)); resposta.setuf(tipounidadefederada.get(rs.getstring(9))); resposta.settelefone(rs.getstring(10)); resposta.setfax(rs.getstring(11)); Programação Comercial Walderson Shimokawa 10

public Fornecedor select(int codfornecedor) throws SQLException { ps = conbd.prepararsql(sql_select_pk); ps.setint(1, codfornecedor); if (rs.next()) { return getbean(rs); return null; finally { public Collection<Fornecedor> select() throws SQLException { ps = conbd.prepararsql(sql_select_all); ArrayList<Fornecedor> resposta = new ArrayList<>(); while (rs.next()) { resposta.add(getbean(rs)); finally { Programação Comercial Walderson Shimokawa 11

Classe ProdutoDAO package br.edu.univag.pedido.dao; import br.edu.univag.pedido.vo.categoria; import br.edu.univag.pedido.vo.fornecedor; import br.edu.univag.pedido.vo.produto; import br.edu.univag.util.sql.conexaobd; import br.edu.univag.util.sql.dao; import java.sql.preparedstatement; import java.sql.resultset; import java.sql.sqlexception; import java.util.arraylist; import java.util.collection; public class ProdutoDAO extends DAO { private static final String SQL_INSERT = "insert into produto " + "(codcategoria, codfornecedor, nomproduto, qtdestoque, valproduto) " + "values (?,?,?,?,?)"; private static final String SQL_UPDATE = "update produto " + "set codcategoria =?, codfornecedor =?, nomproduto =?, qtdestoque =?, " + "valproduto =? " + "where codproduto =?"; private static final String SQL_DELETE = "delete from produto " + "where codproduto =?"; private static final String SQL_SELECT_PK = "select " + "codproduto, codcategoria, codfornecedor, nomproduto, qtdestoque, valproduto " + "from produto " + "where codproduto =?"; private static final String SQL_SELECT_ALL = "select " + "codproduto, codcategoria, codfornecedor, nomproduto, qtdestoque, valproduto " + "from produto " + "order by nomproduto"; private static final String SQL_SELECT_FK_CATEGORIA = "select " + "codproduto, codcategoria, codfornecedor, nomproduto, qtdestoque, valproduto " + "from produto " + "where codcategoria =? " + "order by nomproduto"; private static final String SQL_SELECT_FK_FORNECEDOR = "select " + "codproduto, codcategoria, codfornecedor, nomproduto, qtdestoque, valproduto " + "from produto " + "where codfornecedor=? " + "order by nomproduto"; private final CategoriaDAO categoriadao; private final FornecedorDAO fornecedordao; public ProdutoDAO(ConexaoBD conbd) { super(conbd); categoriadao = new CategoriaDAO(conBD); fornecedordao = new FornecedorDAO(conBD); public int insert(produto produto) throws SQLException { Programação Comercial Walderson Shimokawa 12

ps = conbd.prepararsql(sql_insert, true); ps.setint(1, produto.getcategoria().getcodigo()); ps.setint(2, produto.getfornecedor().getcodigo()); ps.setstring(3, produto.getnome()); ps.setint(4, produto.getqtdestoque()); ps.setdouble(5, produto.getvalunitario()); int resposta = ps.executeupdate(); if (resposta == 1) { //um registro foi inserido int cod = (int) conbd.getchave(ps); //obtém o código gerado pelo banco produto.setcodigo(cod); //preenche o atributo com o código do produto finally { public int update(produto produto) throws SQLException { try (PreparedStatement ps = conbd.prepararsql(sql_update)) { ps.setint(1, produto.getcategoria().getcodigo()); ps.setint(2, produto.getfornecedor().getcodigo()); ps.setstring(3, produto.getnome()); ps.setint(4, produto.getqtdestoque()); ps.setdouble(5, produto.getvalunitario()); ps.setint(6, produto.getcodigo()); return ps.executeupdate(); public int delete(int codproduto) throws SQLException { try (PreparedStatement ps = conbd.prepararsql(sql_delete)) { ps.setint(1, codproduto); return ps.executeupdate(); private Produto getbean(resultset rs) throws SQLException { Produto resposta = new Produto(); resposta.setcodigo(rs.getint(1)); Categoria categoria = categoriadao.select(rs.getint(2)); resposta.setcategoria(categoria); Fornecedor fornecedor = fornecedordao.select(rs.getint(3)); resposta.setfornecedor(fornecedor); resposta.setnome(rs.getstring(4)); resposta.setqtdestoque(rs.getint(5)); resposta.setvalunitario(rs.getdouble(6)); Programação Comercial Walderson Shimokawa 13

public Produto select(int codproduto) throws SQLException { ps = conbd.prepararsql(sql_select_pk); ps.setint(1, codproduto); if (rs.next()) { return getbean(rs); return null; finally { public Collection<Produto> select() throws SQLException { ps = conbd.prepararsql(sql_select_all); ArrayList<Produto> resposta = new ArrayList<>(); while (rs.next()) { resposta.add(getbean(rs)); finally { public Collection<Produto> selectfkcategoria(int codcategoria) throws SQLException { ps = conbd.prepararsql(sql_select_fk_categoria); ps.setint(1, codcategoria); Programação Comercial Walderson Shimokawa 14

ArrayList<Produto> resposta = new ArrayList<>(); while (rs.next()) { resposta.add(getbean(rs)); finally { { public Collection<Produto> selectfkfornecedor(int codfornecedor) throws SQLException ps = conbd.prepararsql(sql_select_fk_fornecedor); ps.setint(1, codfornecedor); ArrayList<Produto> resposta = new ArrayList<>(); while (rs.next()) { resposta.add(getbean(rs)); finally { Programação Comercial Walderson Shimokawa 15

Classe VendedorDAO package br.edu.univag.pedido.dao; import br.edu.univag.pedido.vo.vendedor; import br.edu.univag.util.sql.conexaobd; import br.edu.univag.util.sql.dao; import java.sql.preparedstatement; import java.sql.resultset; import java.sql.sqlexception; import java.util.arraylist; import java.util.collection; public class VendedorDAO extends DAO { private static final String SQL_INSERT = "insert into vendedor " + "(nomvendedor, percomissao) " + "values (?,?)"; private static final String SQL_UPDATE = "update vendedor " + "set nomvendedor =?, percomissao =? " + "where codvendedor =?"; private static final String SQL_DELETE = "delete from vendedor " + "where codvendedor =?"; private static final String SQL_SELECT_PK = "select " + "codvendedor, nomvendedor, percomissao " + "from vendedor " + "where codvendedor =?"; private static final String SQL_SELECT_ALL = "select " + "nomvendedor, percomissao " + "from vendedor " + "order by nomvendedor"; public VendedorDAO(ConexaoBD conbd) { super(conbd); public int insert(vendedor vendedor) throws SQLException { ps = conbd.prepararsql(sql_insert, true); ps.setstring(1, vendedor.getnome()); ps.setdouble(2, vendedor.getperccomissao()); int resposta = ps.executeupdate(); if (resposta == 1) { //um registro foi inserido int cod = (int) conbd.getchave(ps); //obtém o código gerado pelo banco vendedor.setcodigo(cod); //preenche o atributo com o código do vendedor finally { Programação Comercial Walderson Shimokawa 16

public int update(vendedor vendedor) throws SQLException { try (PreparedStatement ps = conbd.prepararsql(sql_update)) { ps.setstring(1, vendedor.getnome()); ps.setdouble(2, vendedor.getperccomissao()); ps.setint(3, vendedor.getcodigo()); return ps.executeupdate(); public int delete(int codvendedor) throws SQLException { try (PreparedStatement ps = conbd.prepararsql(sql_delete)) { ps.setint(1, codvendedor); return ps.executeupdate(); private Vendedor getbean(resultset rs) throws SQLException { Vendedor resposta = new Vendedor(); resposta.setcodigo(rs.getint(1)); resposta.setnome(rs.getstring(2)); resposta.setperccomissao(rs.getdouble(3)); public Vendedor select(int codvendedor) throws SQLException { ps = conbd.prepararsql(sql_select_pk); ps.setint(1, codvendedor); if (rs.next()) { return getbean(rs); return null; finally { public Collection<Vendedor> select() throws SQLException { ps = conbd.prepararsql(sql_select_all); Programação Comercial Walderson Shimokawa 17

ArrayList<Vendedor> resposta = new ArrayList<>(); while (rs.next()) { resposta.add(getbean(rs)); finally { Programação Comercial Walderson Shimokawa 18

Classe PedidoDAO package br.edu.univag.pedido.dao; import br.edu.univag.pedido.vo.cliente; import br.edu.univag.pedido.vo.itempedido; import br.edu.univag.pedido.vo.pedido; import br.edu.univag.pedido.vo.produto; import br.edu.univag.pedido.vo.vendedor; import br.edu.univag.util.sql.conexaobd; import br.edu.univag.util.sql.dao; import java.sql.date; import java.sql.preparedstatement; import java.sql.resultset; import java.sql.sqlexception; import java.sql.types; import java.util.arraylist; import java.util.collection; public class PedidoDAO extends DAO { private static final String SQL_INSERT = "insert into pedido " + "(codvendedor, codcliente, datpedido) " + "values (?,?,?)"; private static final String SQL_INSERT_ITEM = "insert into item_pedido " + "(numpedido, codproduto, qtdproduto) " + "values (?,?,?)"; private static final String SQL_UPDATE = "update pedido " + "set codvendedor =?, codcliente =?, datpedido =?, datentrega =? " + "where numpedido =?"; private static final String SQL_DELETE = "delete from pedido " + "where numpedido =?"; private static final String SQL_DELETE_ITEM = "delete from item_pedido " + "where numpedido =?"; private static final String SQL_SELECT_PK = "select " + "numpedido, codvendedor, codcliente, datpedido, datentrega " + "from pedido " + "where numpedido =?"; private static final String SQL_SELECT_ITEM = "select " + "codproduto, qtdproduto " + "from item_pedido " + "where numpedido =?"; private static final String SQL_SELECT_ALL = "select " + "numpedido, codvendedor, codcliente, datpedido, datentrega " + "from pedido " + "order by numpedido desc"; private final ClienteDAO clientedao; private final ProdutoDAO produtodao; private final VendedorDAO vendedordao; public PedidoDAO(ConexaoBD conbd) { super(conbd); clientedao = new ClienteDAO(conBD); produtodao = new ProdutoDAO(conBD); vendedordao = new VendedorDAO(conBD); public int insert(pedido pedido) throws SQLException { Programação Comercial Walderson Shimokawa 19

ps = conbd.prepararsql(sql_insert, true); ps.setint(1, pedido.getvendedor().getcodigo()); ps.setint(2, pedido.getcliente().getcodigo()); ps.setdate(3, new Date(pedido.getDataPedido().getTime())); int resposta = ps.executeupdate(); if (resposta == 1) { //um registro foi inserido int cod = (int) conbd.getchave(ps); //obtém o código gerado pelo banco pedido.setnumero(cod); //preenche o atributo com o código do pedido resposta += insertitem(pedido); finally { private int insertitem(pedido pedido) throws SQLException { ps = conbd.prepararsql(sql_insert_item); int resposta = 0; for (ItemPedido ip : pedido.getitens()) { ps.setint(1, pedido.getnumero()); ps.setint(2, ip.getproduto().getcodigo()); ps.setint(3, ip.getquantidade()); resposta += ps.executeupdate(); finally { public int update(pedido pedido) throws SQLException { try (PreparedStatement ps = conbd.prepararsql(sql_update)) { ps.setint(1, pedido.getvendedor().getcodigo()); ps.setint(2, pedido.getcliente().getcodigo()); ps.setdate(3, new Date(pedido.getDataPedido().getTime())); if (pedido.getdataentrega()!= null) ps.setdate(4, new Date(pedido.getDataEntrega().getTime())); else Programação Comercial Walderson Shimokawa 20

ps.setnull(4, Types.DATE); ps.setint(5, pedido.getnumero()); int resposta = ps.executeupdate(); resposta += deleteitem(pedido.getnumero()); resposta += insertitem(pedido); public int delete(int numpedido) throws SQLException { try (PreparedStatement ps = conbd.prepararsql(sql_delete)) { ps.setint(1, numpedido); int resposta = ps.executeupdate(); resposta += deleteitem(numpedido); private int deleteitem(int numpedido) throws SQLException { try (PreparedStatement ps = conbd.prepararsql(sql_delete_item)) { ps.setint(1, numpedido); return ps.executeupdate(); private Pedido getbean(resultset rs) throws SQLException { Pedido resposta = new Pedido(); resposta.setnumero(rs.getint(1)); Vendedor vendedor = vendedordao.select(rs.getint(2)); resposta.setvendedor(vendedor); Cliente cliente = clientedao.select(rs.getint(3)); resposta.setcliente(cliente); resposta.setdatapedido(rs.gettimestamp(4)); resposta.setdataentrega(rs.gettimestamp(5)); resposta.setitens(selectitem(resposta.getnumero())); public Pedido select(int numpedido) throws SQLException { ps = conbd.prepararsql(sql_select_pk); ps.setint(1, numpedido); if (rs.next()) { return getbean(rs); return null; Programação Comercial Walderson Shimokawa 21

finally { private Collection<ItemPedido> selectitem(int numpedido) throws SQLException { ps = conbd.prepararsql(sql_select_item); ps.setint(1, numpedido); ArrayList<ItemPedido> resposta = new ArrayList<>(); while (rs.next()) { ItemPedido ip = new ItemPedido(); Produto produto = produtodao.select(rs.getint(1)); ip.setproduto(produto); ip.setquantidade(rs.getint(2)); resposta.add(ip); finally { public Collection<Pedido> select() throws SQLException { ps = conbd.prepararsql(sql_select_all); ArrayList<Pedido> resposta = new ArrayList<>(); while (rs.next()) { resposta.add(getbean(rs)); finally { Programação Comercial Walderson Shimokawa 22

public Collection<Pedido> selectfkvendedor(int codvendedor) throws SQLException { ps = conbd.prepararsql(sql_select_fk_vendedor); ps.setint(1, codvendedor); ArrayList<Pedido> resposta = new ArrayList<>(); while (rs.next()) { resposta.add(getbean(rs)); finally { public Collection<Pedido> selectfkcliente(int codcliente) throws SQLException { ps = conbd.prepararsql(sql_select_fk_cliente); ps.setint(1, codcliente); ArrayList<Pedido> resposta = new ArrayList<>(); while (rs.next()) { resposta.add(getbean(rs)); finally { Programação Comercial Walderson Shimokawa 23