Projeto Supermercado --- Conexão MySQL Classe DAO (Data ...Gilberto B. Oliveira 1 Desenvolvimento...

34
Gilberto B. Oliveira 1 Desenvolvimento de Sistemas Projeto Supermercado --- Conexão MySQL CRUD (Create, Read, Update e Delete) Classe DAO (Data Access Object)

Transcript of Projeto Supermercado --- Conexão MySQL Classe DAO (Data ...Gilberto B. Oliveira 1 Desenvolvimento...

Page 1: Projeto Supermercado --- Conexão MySQL Classe DAO (Data ...Gilberto B. Oliveira 1 Desenvolvimento de Sistemas Projeto Supermercado---Conexão MySQL CRUD (Create, Read, Update e Delete)

Gilberto B. Oliveira 1

Desenvolvimento de Sistemas

Projeto Supermercado---

Conexão MySQLCRUD (Create, Read, Update e Delete)

Classe DAO (Data Access Object)

Page 2: Projeto Supermercado --- Conexão MySQL Classe DAO (Data ...Gilberto B. Oliveira 1 Desenvolvimento de Sistemas Projeto Supermercado---Conexão MySQL CRUD (Create, Read, Update e Delete)

Gilberto B. Oliveira 2

Desenvolvimento de Sistemas

Revisão do Projeto

Page 3: Projeto Supermercado --- Conexão MySQL Classe DAO (Data ...Gilberto B. Oliveira 1 Desenvolvimento de Sistemas Projeto Supermercado---Conexão MySQL CRUD (Create, Read, Update e Delete)

Gilberto B. Oliveira 3

Criação de pacotes adicionais

Projeto AnteriorEstrutura de pacotes MVC

model designteste

view gui modelo

controller

Page 4: Projeto Supermercado --- Conexão MySQL Classe DAO (Data ...Gilberto B. Oliveira 1 Desenvolvimento de Sistemas Projeto Supermercado---Conexão MySQL CRUD (Create, Read, Update e Delete)

Gilberto B. Oliveira 4

Modelagem das Classes (Beans)

Projeto AnteriorModelagem das classes conforme padrão estabelecido

Guiado por testesEncapsuladaDois construtores (completo e vazio)

Obs: recomendo a definição os pacotes model.design e model.teste

Page 5: Projeto Supermercado --- Conexão MySQL Classe DAO (Data ...Gilberto B. Oliveira 1 Desenvolvimento de Sistemas Projeto Supermercado---Conexão MySQL CRUD (Create, Read, Update e Delete)

Gilberto B. Oliveira 5

Desenvolvimento de Sistemas

Modelagem do Banco de Dados

Page 6: Projeto Supermercado --- Conexão MySQL Classe DAO (Data ...Gilberto B. Oliveira 1 Desenvolvimento de Sistemas Projeto Supermercado---Conexão MySQL CRUD (Create, Read, Update e Delete)

Gilberto B. Oliveira 6

Código SQL DDL

Page 7: Projeto Supermercado --- Conexão MySQL Classe DAO (Data ...Gilberto B. Oliveira 1 Desenvolvimento de Sistemas Projeto Supermercado---Conexão MySQL CRUD (Create, Read, Update e Delete)

Gilberto B. Oliveira 7

Tabela Produto

Page 8: Projeto Supermercado --- Conexão MySQL Classe DAO (Data ...Gilberto B. Oliveira 1 Desenvolvimento de Sistemas Projeto Supermercado---Conexão MySQL CRUD (Create, Read, Update e Delete)

Gilberto B. Oliveira 8

Desenvolvimento de Sistemas

Configurações necessárias para suportar a conexão com o Banco de Dados

Page 9: Projeto Supermercado --- Conexão MySQL Classe DAO (Data ...Gilberto B. Oliveira 1 Desenvolvimento de Sistemas Projeto Supermercado---Conexão MySQL CRUD (Create, Read, Update e Delete)

Gilberto B. Oliveira 9

1. Adicionar a Biblioteca de Drivers do MySQL

Page 10: Projeto Supermercado --- Conexão MySQL Classe DAO (Data ...Gilberto B. Oliveira 1 Desenvolvimento de Sistemas Projeto Supermercado---Conexão MySQL CRUD (Create, Read, Update e Delete)

Gilberto B. Oliveira 10

2. String de conexão com o BD

Page 11: Projeto Supermercado --- Conexão MySQL Classe DAO (Data ...Gilberto B. Oliveira 1 Desenvolvimento de Sistemas Projeto Supermercado---Conexão MySQL CRUD (Create, Read, Update e Delete)

Gilberto B. Oliveira 11

3. Classe de conexão: Atributos

Page 12: Projeto Supermercado --- Conexão MySQL Classe DAO (Data ...Gilberto B. Oliveira 1 Desenvolvimento de Sistemas Projeto Supermercado---Conexão MySQL CRUD (Create, Read, Update e Delete)

Gilberto B. Oliveira 12

3. Classe de conexão: método getConnection()

Page 13: Projeto Supermercado --- Conexão MySQL Classe DAO (Data ...Gilberto B. Oliveira 1 Desenvolvimento de Sistemas Projeto Supermercado---Conexão MySQL CRUD (Create, Read, Update e Delete)

Gilberto B. Oliveira 13

4.Classe de Conexão: closeConnection() 1

Page 14: Projeto Supermercado --- Conexão MySQL Classe DAO (Data ...Gilberto B. Oliveira 1 Desenvolvimento de Sistemas Projeto Supermercado---Conexão MySQL CRUD (Create, Read, Update e Delete)

Gilberto B. Oliveira 14

5.Classe de Conexão: closeConnection() 2

Page 15: Projeto Supermercado --- Conexão MySQL Classe DAO (Data ...Gilberto B. Oliveira 1 Desenvolvimento de Sistemas Projeto Supermercado---Conexão MySQL CRUD (Create, Read, Update e Delete)

Gilberto B. Oliveira 15

6.Classe de Conexão: closeConnection() 3

Page 16: Projeto Supermercado --- Conexão MySQL Classe DAO (Data ...Gilberto B. Oliveira 1 Desenvolvimento de Sistemas Projeto Supermercado---Conexão MySQL CRUD (Create, Read, Update e Delete)

Gilberto B. Oliveira 16

Desenvolvimento de Sistemas

Implementação da Classe DAOData Access Object

CRUD (Create, Read, Update, Delete)

Page 17: Projeto Supermercado --- Conexão MySQL Classe DAO (Data ...Gilberto B. Oliveira 1 Desenvolvimento de Sistemas Projeto Supermercado---Conexão MySQL CRUD (Create, Read, Update e Delete)

Gilberto B. Oliveira 17

1. Classe DAO: Método create()

Page 18: Projeto Supermercado --- Conexão MySQL Classe DAO (Data ...Gilberto B. Oliveira 1 Desenvolvimento de Sistemas Projeto Supermercado---Conexão MySQL CRUD (Create, Read, Update e Delete)

Gilberto B. Oliveira 18

1.1 Atualizando o código: Botão Gravar

Page 19: Projeto Supermercado --- Conexão MySQL Classe DAO (Data ...Gilberto B. Oliveira 1 Desenvolvimento de Sistemas Projeto Supermercado---Conexão MySQL CRUD (Create, Read, Update e Delete)

Gilberto B. Oliveira 19

Observações:

Obs1: A classe Bean (classe Produto em model.design) precisa ser atualizada com um construtor só com Descrição e Valor Unitário, pois o código será auto incrementado pelo BD.Obs2: A caixa de texto com o código do produto precisa ser desativada;Obs3: Iniciar o foco no campo descrição, já que o campo código do form não mais recebe dados.

Page 20: Projeto Supermercado --- Conexão MySQL Classe DAO (Data ...Gilberto B. Oliveira 1 Desenvolvimento de Sistemas Projeto Supermercado---Conexão MySQL CRUD (Create, Read, Update e Delete)

Gilberto B. Oliveira 20

Testando...

Page 21: Projeto Supermercado --- Conexão MySQL Classe DAO (Data ...Gilberto B. Oliveira 1 Desenvolvimento de Sistemas Projeto Supermercado---Conexão MySQL CRUD (Create, Read, Update e Delete)

Gilberto B. Oliveira 21

2. Classe DAO: Método read()

Page 22: Projeto Supermercado --- Conexão MySQL Classe DAO (Data ...Gilberto B. Oliveira 1 Desenvolvimento de Sistemas Projeto Supermercado---Conexão MySQL CRUD (Create, Read, Update e Delete)

Gilberto B. Oliveira 22

2.1. Fazendo a leitura da tabela ao inicializar o form

Page 23: Projeto Supermercado --- Conexão MySQL Classe DAO (Data ...Gilberto B. Oliveira 1 Desenvolvimento de Sistemas Projeto Supermercado---Conexão MySQL CRUD (Create, Read, Update e Delete)

Gilberto B. Oliveira 23

Testando...

Page 24: Projeto Supermercado --- Conexão MySQL Classe DAO (Data ...Gilberto B. Oliveira 1 Desenvolvimento de Sistemas Projeto Supermercado---Conexão MySQL CRUD (Create, Read, Update e Delete)

Gilberto B. Oliveira 24

Observações

Obs1: Logo, é preciso chamar o método lerTabela() após gravar, para que o dados gravados sejam atualizado na tabela…Obs2: BUG!! A tabela duplica os registros do bd! Para resolver o problema é preciso criar um método cleanTable() na classe TableModel para ser chamado no método lerTabela.

Page 25: Projeto Supermercado --- Conexão MySQL Classe DAO (Data ...Gilberto B. Oliveira 1 Desenvolvimento de Sistemas Projeto Supermercado---Conexão MySQL CRUD (Create, Read, Update e Delete)

Gilberto B. Oliveira 25

Obs2: O BUG!!

Page 26: Projeto Supermercado --- Conexão MySQL Classe DAO (Data ...Gilberto B. Oliveira 1 Desenvolvimento de Sistemas Projeto Supermercado---Conexão MySQL CRUD (Create, Read, Update e Delete)

Gilberto B. Oliveira 26

Obs2: Solução (1ª Parte): Método cleanTable()

Page 27: Projeto Supermercado --- Conexão MySQL Classe DAO (Data ...Gilberto B. Oliveira 1 Desenvolvimento de Sistemas Projeto Supermercado---Conexão MySQL CRUD (Create, Read, Update e Delete)

Gilberto B. Oliveira 27

Obs2: Solução (2ª Parte)Uso de métodos na classe GUI

Page 28: Projeto Supermercado --- Conexão MySQL Classe DAO (Data ...Gilberto B. Oliveira 1 Desenvolvimento de Sistemas Projeto Supermercado---Conexão MySQL CRUD (Create, Read, Update e Delete)

Gilberto B. Oliveira 28

3. Classe DAO: Método update()

Page 29: Projeto Supermercado --- Conexão MySQL Classe DAO (Data ...Gilberto B. Oliveira 1 Desenvolvimento de Sistemas Projeto Supermercado---Conexão MySQL CRUD (Create, Read, Update e Delete)

Gilberto B. Oliveira 29

3.1 Atualizando o botão Alterar

Page 30: Projeto Supermercado --- Conexão MySQL Classe DAO (Data ...Gilberto B. Oliveira 1 Desenvolvimento de Sistemas Projeto Supermercado---Conexão MySQL CRUD (Create, Read, Update e Delete)

Gilberto B. Oliveira 30

4.Classe DAO: Método delete()

Page 31: Projeto Supermercado --- Conexão MySQL Classe DAO (Data ...Gilberto B. Oliveira 1 Desenvolvimento de Sistemas Projeto Supermercado---Conexão MySQL CRUD (Create, Read, Update e Delete)

Gilberto B. Oliveira 31

4.1 Atualizando o botão excluir

Page 32: Projeto Supermercado --- Conexão MySQL Classe DAO (Data ...Gilberto B. Oliveira 1 Desenvolvimento de Sistemas Projeto Supermercado---Conexão MySQL CRUD (Create, Read, Update e Delete)

Gilberto B. Oliveira 32

Testando...

Page 33: Projeto Supermercado --- Conexão MySQL Classe DAO (Data ...Gilberto B. Oliveira 1 Desenvolvimento de Sistemas Projeto Supermercado---Conexão MySQL CRUD (Create, Read, Update e Delete)

Gilberto B. Oliveira 33

Projeto Final

Page 34: Projeto Supermercado --- Conexão MySQL Classe DAO (Data ...Gilberto B. Oliveira 1 Desenvolvimento de Sistemas Projeto Supermercado---Conexão MySQL CRUD (Create, Read, Update e Delete)

Gilberto B. Oliveira 34

Referência

http://docs.oracle.com/javase/tutorial/jdbc/basics/index.html

Youtube – canal descompila <descompila.com.br>https://www.youtube.com/channel/UCgOu28f2-cdegVHuZZhLDdA