Professional Documents
Culture Documents
1.1.
viria a mudar tudo isso. Apresentou um modelo relacional onde usurios, sem
conhecimento tcnico, poderiam armazenar e extrair grandes quantidades de
informaes de um banco de dados. Na poca, ningum percebeu que as
teorias obscuras de Codd desencadeariam uma revoluo tecnolgica
comparvel ao desenvolvimento dos computadores pessoais e da internet.
Apesar de ter sido o marco dos bancos de dados relacionais, o artigo de
Codd no foi muito explorado no incio. S no final da dcada de 70 que a IBM
desenvolveu um sistema baseado nas ideias do cientista, o Sistema R. Junto
com esse sistema foi criado a linguagem de consulta estruturada (SQL
Structured Query Language) que se tornou a linguagem padro para bancos de
dados relacionais. Embora tenha contribudo para a evoluo dos bancos de
dados relacionais, o System R no foi muito bem sucedido comercialmente,
tendo em vista que a IBM voltava-se para o IMS, um sistema de banco de
dados confivel, de alta tecnologia, que havia surgido em 1968.
Entre os leitores do artigo de Codd estava Larry Ellison, que havia
acabado de fundar uma pequena empresa. Recrutando programadores do
Sistema R e da Universidade da Califrnia. Ellison conseguiu colocar no
mercado o primeiro banco de dados relacional com base em SQL em 1979, o
Oracle 2, bem antes da IBM. Em 1983, a empresa lanou uma verso porttil
do banco de dados, teve um faturamento bruto anual de US$ 5.000.000 e
mudou seu nome para Oracle. Impelida pela concorrncia, a IBM finalmente
lanou o SQL/DS, seu primeiro banco de dados relacional, em 1980. Na
sequencia vieram SQL Server, MySQL, DBase III, Paradox, etc.
Em 2007, as vendas globais de sistemas de gerenciamento de banco de
dados chegaram ao pico de US$ 15 bilhes com a Oracle detendo uma
participao de praticamente metade do mercado, seguida pela IBM, com
menos de um quarto. A participao do SQL Server da Microsoft cresceu mais
rpido do que a de seus competidores, chegando a 14%.
1.3.
Abstrao de Dados
EXERCCIOS
1. Qual a importncia dos bancos de dados para os Sistemas de Informao?
_______________________________________________________________
_________________
2. O que um Banco de Dados? Cite dois exemplos de sistemas que voc
acredita que utiliza banco de dados.
_______________________________________________________________
_______
3. Qual a diferena entre dado, fato, informao e metadados?
_______________________________________________________________
___
4. Quais os principais componentes de um Sistema de Banco de Dados?
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_____________________
5. Quais as operaes bsicas que o usurio pode realizar em um banco de
dados?
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_____________________
6. Quais os nveis de abstrao de um Banco de dados?
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_____________________
Caractersticas de um SGBD
Firebird
PESQUISA
1. Pesquise na internet um comparativo das principais vantagens e
desvantagens dos principais SGBDs existentes no mercado.
Sugesto: Dividir as turma em equipes, onde cada equipe ficar responsvel
por pesquisar sobre um SGBD. Realizar um debate sobre as vantagens e
desvantagens enfocando suas caractersticas(tempo de resposta, segurana,
preo, espao para armazenamento, quantidade de processos que podem ser
realizados por minutos, etc.)
2.2.
Arquitetura do SGBD
10
EXERCCIOS
1. O que um SGBD, e qual sua principal funo?
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
___________________________________
2. Umas das caractersticas de um SGBD o gerenciamento de transaes. O
que uma transao no contexto de banco de dados?
11
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
___________________________________
3. Explique cada uma das propriedades ACID do gerenciamento de transaes
do SGBD.
a.Atomicidade:
_______________________________________________________________
_____________________________________________________________
b.Consistncia:
______________________________________________________________
_______________________________________________________________
c.Isolamento:
______________________________________________________________
_______________________________________________________________
d.Durabilidade:___________________________________________________
_______________________________________________________________
_______________________________________________________________
4. Quando um SGBD executa um rollback?
_______________________________________________________________
_______________________________________________________________
5. Explique com suas palavras cada uma das caractersticas do SGBD.
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
___________________________________
6. Quais as principais arquitetura de SGBD? Aponte vantagens e desvantagens
de cada um deles.
_______________________________________________________________
_______________________________________________________________
______________________________________________________________
12
Modelagem
conceitual:
refere-se
ao
desenvolvimento de um modelo inicial da base de
dados que reflitam as necessidades do usurio.
Essa modelagem preocupa-se em descrever quais
dados sero armazenados na base de dados e
quais dados se relacionam. Para fazer o modelo
conceitual necessrio entender que dados o usurio final espera que o
sistema disponibilize. A modelagem conceitual fornece uma viso mais
prxima do modo como os usurios visualizam os dados realmente.
Modelagem lgica: Compreende o processo de desenvolver como os
dados sero armazenados no sistema e como iro se relacionar. Isso
significa transformar o modelo conceitual obtido na primeira fase num
modelo mais prximo da implementao, ou seja, fornece uma viso
mais detalhada do modo como os dados so armazenados no
computador. Nessa fase tambm so criados os dicionrios de dados, e
feita verificao se o modelo est normalizado, veremos os conceitos de
normalizao de dados mais a frente.
Implementao do modelo lgico: Uma vez que toda a etapa de
modelagem esteja concluda, ser necessrio implementar ou criar a
base de dados no SGBD escolhido. Essa fase requer que o
desenvolvedor conhea a linguagem SQL e conhea o SGBD
selecionado.
13
3.1.
Modelo de Dados
14
EXERCCIOS
1. Qual o objetivo da modelagem de um banco de dados?
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
15
_______________________________________________________________
_______________________________________________________________
___________________________________
2. Quais as etapas de um Projeto de Desenvolvimento de um Sistema de
Banco de Dados? O que feito em cada uma dessas etapas?
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
___________________________________
3. O que so modelos de dados?
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
___________________________________
4. Qual a diferena entre os modelos orientados a registros e os modelos
orientados a objetos? Cite exemplos de cada um deles.
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
___________________________________
16
Entidades
RESPOSTAS
a
17
PERGUNTAS
RESPOSTAS
H necessidade de
guardarmos
informao da quantidade?
Pode haver mais de uma quantidade?
4.2.
Atributos
18
19
CHAVE PRIMRIA
20
Relacionamento
Representao de um relacionamento
21
EXERCCIOS
1. Para que serve o Diagrama Entidade Relacionamento?
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_________________________________
2. Defina o que entidade e d pelo menos trs exemplos de entidades
(diferente dos apresentados na apostila).
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
___________________________________
3. Defina atributo e cite 4 atributos para cada entidade que voc citou na
questo 2.
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_________________________________
4. Quais os tipos de atributos? Explique cada um deles.
_______________________________________________________________
_______________________________________________________________
22
5. Explique o que chave primria e para que ela serve. Apresente 3 exemplos
de atributos que poderiam ser chave primria e explique o porque.
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_________________________________
6. Uma chave primria pode assumir valor nulo? Explique sua resposta.
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
___________________
7. Dado o DER abaixo, coloque os atributos para cada entidade e marque as
chaves primrias para cada entidade.
4.4.
Cardinalidade de um relacionamento
23
Mxima 1 ou N
Mnima 0 ou 1
Mnima 0 ou 1
24
25
Uma mulher pode ser casada no mnimo com quantos homens na outra
entidade? E no mximo?
4.5.
Grau de um Relacionamento
26
5.13.
EXERCCIOS
1. O que cardinalidade? Qual a diferena entre cardinalidade mnima e
mxima?
_______________________________________________________________
_______________________________________________________________
27
28
Auto-relacionamento
4.7.
29
Especializao e Generalizao
30
dizemos que o modelo deve ser generalizado, ou seja, deve passar pelo
processo de generalizao.
A generalizao o processo inverso da especializao. Em vez de
subdividir a entidade cria-se uma entidade mais genrica e adiciona-se um
atributo denominado tipo, que identifica o tipo de objeto, como mostra a figura
5.17. O atributo tipo identificar se o telefone do tipo celular ou residencial.
4.9.
Agregao
31
32
Notao do MER
Atributo Multivalorado
Relacionamento
Entidade
Atributo Derivado
Atributo Composto
Atributo Chave
Entidade Fraca
EXERCCIOS
1. O que um auto-relacionamento? Cite um exemplo diferente da apostila que
caracteriza este relacionamento.
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
___________________
2. O que especializao e generalizao? Cite um exemplo.
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_________________________________
33
5. Modelo Relacional
O modelo Relacional um modelo lgico, utilizado em bancos de dados
relacionais. Ele tem por finalidade representar os dados como uma coleo de
tabelas e cada linha (tupla) de uma tabela representa uma coleo de dados
relacionados. Neste modelo, comeamos a nos preocupar em como os dados
devem ser armazenados e em como criaremos os relacionamentos do modelo
conceitual. tambm nessa etapa que definimos o SGBD que ser utilizado,
bem como os tipos de dados para cada atributo. O modelo Relacional
definido usando como base o MER.
O Modelo Relacional foi introduzido por Edgar Frank Codd (1970) e
tornou-se um padro para aplicaes comerciais, devido a sua simplicidade e
34
nome_aluno
Ana
Joo
Maria
Jos
Marcos
data_nasc_aluno
12/05/1997
15/04/1996
22/06/1998
03/01/1997
19/03/1996
nome da
a chave
O tipo de
mostra o
35
36
Figura 5.2
Figura 5.3
37
Nova tabela
inserida
Figura 5.4
Figura 5.5
38
Figura 5.6
Para criar um atributo com nome e tipo desejado, voc deve clicar duas
vezes em cima da linha onde est o nome do atributo idtbAluno. Quando o
cursor ficar como o mostrado na Figura 5.7, voc pode digitar o nome do
atributo desejado.
Figura 5.7
39
Voc deve definir os tipos de modo que o seu modelo fique parecido
como o mostrado na Figura 5.8. Note que os tipos dos atributos suportados
variam entre os SGBDs. No caso do MySQL, os principais tipos suportados
so:
Tipo
VARCHAR
INT
DECIMAL
DATA
Descrio
Valores no campo VARCHAR so strings de tamanho varivel. Voc pode declarar um
campo VARCHAR para ter qualquer tamanho entre 1 e 255, assim como para campo
CHAR. No entanto, diferente de CHAR, valores VARCHAR so armazenados usando
apenas quantos caracteres forem necessrios, mais 1 byte para gravar o tamanho.
Valores inteiros de -2147483648 a 2147483647.
O tipo DECIMAL usado por valores para os quais importante preservar a exatido
como, por exemplo, dados monetrios.
O tipo DATA usado quando se necessita apenas do valor da data, sem a parte da
hora. MySQL recupera e mostra valores do tipo DATA no formato 'ano-mm-dd'
Figura 5.8
Chave Primria
Para inserirmos a chave primria, temos que marc-la, na Figura 14 h
vrios quadradinhos ao lado de cada atributo com algumas opes, vamos
marcar a opo PK, que a nossa chave primria. O termo PK vem do ingls
Primary Key, que em portugus quer dizer chave primaria.
Figura 5.9
40
Chave Estrangeira
Um conceito muito importante quando se fala em modelo relacional o
conceito de Chave Estrangeira (Foreign Key - FK).
Uma chave estrangeira um atributo da tabela, que faz referencia a uma
chave primaria de outra tabela ou da prpria tabela. Suponha que tenhamos as
tabelas Turma e Aluno, representadas no modelo relacional a seguir.
Observe que a tabela tbAluno possui um atributo cdigo_turma. Esse atributo
chave primria na tabela tbTurma e, portanto, uma chave estrangeira na
tabela tbAluno. O atributo que chave estrangeira deve ser do mesmo tipo e
do mesmo tamanho que sua primria correspondente. importante deixar
explicito a qual tabela a chave estrangeira est fazendo referncia.
tbTurma (cdigo_turma: inteiro, nome_turma: caracter(5))
nome_aluno
Ana
Joo
Maria
Jos
Marcos
codigo_turma
1
2
3
4
data_nasc_aluno
12/05/1997
15/04/1996
22/06/1998
03/01/1997
19/03/1996
cdigo_turma
1
3
2
1
3
nome_turma
1 Informtica
2 Informtica
3 Informtica
1 Enfermagem
41
Figura 5.10
42
tbTurma. Para finalizar, voc deve informar qual atributo da tabela tbTurma
ser utilizada para controlar a integridade da tabela tbAluno. Nesse caso, voc
deve marcar o atributo cdigo_turma.
Figura 5.11
43
44
Figura 6.1
6.1.
Mapear entidades
Figura 6.2
6.2.
Figura 6.3
45
Figura 6.4
6.4.
46
Figura 6.5
Figura 6.6
47
Figura 6.7
Figura 6.8
48
EXERCCIOS
1. Crie o diagrama relacional das entidades abaixo:
6.6.
Figura 6.9
49
Por exemplo, a Figura 6.10 mostra as duas tabelas sem o relacionamento umpara-um.
Figura 6.10
Figura 6.11
50
Figura 6.12
Figura 6.13
51
Figura 6.15
52
Figura 6.16
6.8.
Neste passo voc deve primeiro lembrar que o relacionamento muitospara-muitos usado quando vrias entidades A se relacionam com vrias
entidades B. No exemplo da Figura 6.17 temos o relacionamento muitos-paramuitos entre Professor e Turma. Nela, a entidade Professor pode lecionar
vrias Turmas. Pelo outro lado, cada Turma pode possuir mais de um
Figura 6.17
Professor.
53
1. criar uma nova tabela para representar o relacionamento muitos-paramuitos. No nosso exemplo, voc poderia criar uma tabela com o nome
tbProfessor_Turma, ou tbleciona, para representar o relacionamento no
modelo ER. Ao final deste subpasso, voc deve obter algo parecido com
a Figura 6.18.
2. inserir como chave estrangeira na tabela recm-criada as chaves
primrias das entidades participantes. No caso do exemplo, voc deve
inserir como chave estrangeira os atributos matricula_professor e
cdigo_turma, que so as chaves primrias das tabelas tbProfessor e
tbTurma, respectivamente. Ao final deste subpasso, voc deve obter
algo parecido com a Figura abaixo.
Figura 6.18
Figura 6.19
54
Figura 6.20
relacional
55
7. Dicionrio de Dados
Aps o modelo relacional ter sido descrito ou diagramado, necessrio
criar o Dicionrio de Dados, que tem por objetivo descrever as propriedades de
uma tabela, sua estrutura fsica, e as restries que cada atributo possui.
Assim, o desenvolvedor que ir implementar o banco de dados saber
exatamente como a base de dados deve ser criada.
No Dicionrio de dados, cada tabela do modelo relacional dever ser
descrita e dever conter os seguintes campos: Nome do atributo, Descrio do
atributo, tamanho, tipo, e restries (valor nulo, regra de domnio, chaves, valor
default, unique).
A tabela abaixo apresenta um modelo de dicionrio de dados para a
tabela tbAluno.
56
Nome
matricula_aluno
RG_aluno
nome_aluno
data_nasc_aluno
Cidade_aluno
matricula_aluno_repres
Cdigo_turma
sexo_aluno
Descrio
Tipo
Tamanho
Nulo
PK
Default
Unique
No
Regra de
Domnio
-
Armazena a
matricula do
aluno
Armazena o
RG do aluno
Armazena o
nome do
aluno
Armazena a
data de
nascimento
do aluno
Armazena a
cidade do
aluno
Armazena a
matricula do
aluno
representante
Armazena o
cdigo da
turma do
aluno
Armazena o
sexo a que o
aluno
pertence
Numrico
No
Caracter
11
No
Sim
Caracter
100
No
No
Data
No
No
Caracter
20
Sim
Fortaleza
No
Numrico
Sim
No
Inteiro
No
FK que
referencia
tbTurma
No
Caracter
No
(M)Masculino
(F)Feminino
--
No
57
8. Normalizao de Dados
8.1.
Nome
Endereo
Cidade
Joo Silva
Rua Uruguaiana
Porto Velho
Maria Francisca
Rua Mxico
Cacoal
Antonio Jos
Rua Piau
Porto Velho
Pedido_id
Preo
Data
Endereo
23
01/05/05
Rua Uruguaiana
Joo Silva
Porto Velho
45
06/08/05
Rua Mxico
Maria Francisca
Cacoal
10
67
04/07/05
Rua Uruguaiana
Joo Silva
Porto Velho
Nome
Cidade
58
Porque Normalizar?
8.3.
NumAg
1524
1550
2051
Endereo
Prudente de Morais, 12, RN
Hermes da Fonseca, 15, RN
Eng. Roberto Freire, 20, RN
Telefones
3605-5223, 3605-5141, 3605-5142
4225-5889, 4225-5890
5223-8556, 5223-8557
59
8.4.
Endereo
Prudente de Morais, 12, RN
Hermes da Fonseca, 15, RN
Eng. Roberto Freire, 20, RN
NumAg
1524
1524
1524
1550
1550
2051
2051
Telefones
3605-5223
3605-5141
3605-5142
4225-5889
4225-5890
5223-8556
5223-8557
60
Cod_empregado
12
12
15
15
Num_agencia
1524
1550
1524
1550
Agencia_endereco
Prudente de Morais, 12
Hermes da Fonseca, 15
Prudente de Morais, 12
Hermes da Fonseca, 15
Nome_empregado
Luiz
Luiz
Ricardo
Ricardo
Horas_trabalhadas
20
18
10
15
61
Num_agencia
1524
1550
1524
1550
8.5.
Num_agencia
1524
1550
1524
1550
Agencia_endereco
Prudente de Morais, 12
Hermes da Fonseca, 15
Prudente de Morais, 12
Hermes da Fonseca, 15
Horas_trabalhadas
20
18
10
15
Cod_empregado
12
12
15
15
Nome_empregado
Luiz
Luiz
Ricardo
Ricardo
62
Cod_departamento
1
2
3
4
Nome_departamento
Vendas
Recursos Humanos
Estoque
Financeiro
Cod_gerente
101
102
103
104
Nome_gerente
Marcos
Maria
Joo
Matheus
Para que a tabela obedea a 3FN, devemos criar uma nova tabela
tbGerente que ir conter o atributo que depende de outro atributo no chave da
tabela original, neste caso nome_gerente, mais o atributo do qual ele depende,
neste caso o cdigo_gerente. A figura abaixo mostra como ficaria este modelo.
Cod_departament
o
1
2
3
4
Nome_departament
o
Vendas
Recursos Humanos
Estoque
Financeiro
Cod_gerent
e
101
102
103
104
Cod_gerente
101
102
103
104
Nome_gerente
Marcos
Maria
Joo
Matheus
EXERCCIOS
1. Crie o dicionrio de dados dos diagramas da atividade anterior.
2. Explique cada uma das restries utilizadas na criao do dicionrio de
dados.
63
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
___________________________________
2. Explique o que redundncia de dados.
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
____________________________
3. Cite as principais caractersticas das anomalias de insero, remoo e
atualizao.
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
4. O que normalizao de dados, e qual sua finalidade?
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
64
b)
65
Temos
Tabela
Clientes
que
uma
lista
ordenada
de
colunas
representando um registro.
Ento um registro uma instncia de
uma tabela, ou entidade. Uma entidade
66
LINGUAGEM SQL
67
9.3.
68
COMANDO
DESCRIO
GRUPO
SELECT
DML
INSERT
DML
UPDATE
DML
DELETE
DML
CREATE
DDL
ALTER
DDL
DROP
DDL
EXERCICIO
1 Com base no que voc j aprendeu sobre banco de dados faa uma
produo textual de no mnimo 5 linhas descrevendo o diagrama abaixo:
69
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_________________________________________________
70
2 INSERT
3 DROP
4 SELECT
5 DELETE
71
10.
INTRODUO AO MySQL
1 Passo:
Aps a Instalao do MySQL no seu computador, abra o MySQL
Command Line Client. No meu caso eu baixei a verso 5.5 e sempre deixo
fixado no Menu Iniciar, mas qualquer coisa s voc
seguir o caminho
2 Passo:
Depois de Aberto o MySQL, ele pede para que voc entre com o
password, ou seja, com a senha que voc definiu na hora da instalao.
72
3 Passo:
Para conhecer quais os bancos de dados existentes dentro do MySQL
basta usar o comando SHOW DATABASES. SHOW significa mostrar,
apresentar, exibir e DATABASES significa bases de dados ou bancos de
dados, ou seja, manda mostrar os bancos de dados existentes.
No meu caso eu j tenho sete bancos de dados criados, como voc est
acessando pela primeira vez deve ter pelo menos trs que j vem junto da
instalao que o information_schema, o mysql e o test que geralmente
fornecido como um espao de trabalho para usurios fazerem testes.
10.1.
TIPOS DE DADOS
73
Strings
Este tipo de dados armazena uma string de tamanho fixo, com
espaos direita. O tamanho varia de 1 a 255 caracteres. Na
consulta, o MySQL ignora os espaos que no foram ocupados.
Char
Varchar
Tinyblob, Blob,
Mediumblob,
Longblob
Muito cuidado, pois o mysql tem como delimitador o ponto e vrgula (;), ou
seja, se um ponto e vrgula (;) aparecer em meio a um cdigo, o mysql entende que
ali, o comando est encerrado e no h necessidade de continuidade. Muitos erros
acontecem por falta do (ponto e vrgula) no final do comando.
Vai ai outra dica. No linux, o mysql case-sensitive por padro. No windows
no, tanto faz letras maisculas como minsculas. Para desabilitar a sensibilidade
do Linux, habilite o parmetro "lower_case_table_names" no MySQL e pronto.
74
Data/Hora
Date
Datetime
Timestamp
Time
Year
Numricos
Int
Float
Double
Decimal
75
2 Passo:
Para que voc possa ter acesso a qualquer informao do banco de
dados, ou mesmo criar tabelas, inserir registro ou fazer uma consulta voc
precisa entrar dentro dele. O comando para isso USE <nome do banco>;
3 Passo:
Agora como voc j tem o banco de dados e entrou nele, voc j pode
comear a criar as tabelas do seu banco. Para criar tabelas preciso seguir um
padro bsico:
CREATE TABLE <nome da tabela>(
<nome da coluna> <tipo de dados> (<quantidade de caracteres>),
<nome da coluna> <tipo de dados> (<quantidade de caracteres>) );
76
77
4 Passo:
Para ver como ficou a estrutura das tabelas criadas usamos o codigo
DESCRIBE TABLE <nome da tabela>; ou somente DESC TABLE <nome da
tabela>; Mais se voc quer ver como foi criada a tabela pode usar o comando
SHOW CREATE TABLE <nome da tabela>
Exemplo DESCRIBE:
Exemplo DESC:
78
Veja agora como ficou o cdigo criado e compare com o que voc fez.
79
EXERCICIO
1. Com base no exemplo anterior crie um novo banco de dados chamado biblioteca.
80
J aprendemos a criar tabelas no BD. Mas, como proceder para inserir, por
exemplo, uma coluna em uma tabela j existente. Ser que necessrio para isso
excluir toda a tabela? A resposta para essa pergunta no. Utilizando o comando
ALTER, possvel que o usurio altere a estrutura de uma tabela, por exemplo,
inserindo novas colunas.
Usando o comando ALTER, possvel realizar as seguintes alteraes na
estrutura de uma tabela:
1. Adicionar colunas;
2. Excluir colunas;
3. Alterar o tipo e o nome de uma coluna j existente.
Utilizando o banco de dados escola e a tabela novo_aluno vamos adicionar uma
coluna chamada de endereco. Para adicionar colunas na tabela seguimos um
padro bsico:
ALTER TABLE <nome da tabela> ADD <nome da coluna> <tipo de dado>;
OBS: No comando ALTER aparece clusula ADD indicando que estamos
adicionando uma coluna tabela e definindo o seu tipo.
Exemplo ADD:
81
Perceba que a coluna endereo foi adicionada na ultima posio, porm nem
sempre queremos que a coluna que adicionarmos fique por ultimo, por isso Voc
pode utilizar palavras chaves como FIRST (primeiro) ou AFTER (aps) para
posicionar a nova coluna na posio que desejar na tabela.
Exemplo FIRST:
Usando o mesmo banco de dados, porm na tabela aluno vamos adicionar a
coluna cdigo como sendo a primeira coluna e chave primaria da tabela.
Exemplo AFTER:
O FIRT insere na primeira coluna, j com o AFTER voc escolhe a posio que
deseja que a coluna fique, ou melhor, depois de quem a coluna vai ficar. Usando a
mesma tabela aluno vamos inserir a coluna nascimento depois da coluna nome.
82
83
Vamos usar como exemplo o BD escola. Perceba que criamos duas tabelas
uma se chama aluno e a outra novo_aluno, no preciso que tenhamos essas duas
tabelas em nosso banco ento vamos excluir a tabela novo_aluno.
84
Vamos usar como exemplo o banco de dados test que veio junto da instalao.
Esse BD geralmente fornecido como um espao de trabalho para usurios
fazerem testes como no precisamos dele posso exclui-lo.
85
10.5.
.
Esse tipo de representao evita que para cada pedido precisemos colocar a
toda a identificao do cliente, basta armazenarmos o id do cliente na tabela de
pedidos e atravs dele podemos identificar de quem o pedido. Uma chave
estrangeira sempre se relaciona com a chave primria da tabela do relacionamento.
Tratando de cdigos, Vamos criar um banco de dados chamado VENDA e as
duas tabelas CLIENTE e PEDIDO com os campos que foram definidos.
A definio da chave estrangeira segue o seguinte padro:
FOREIGN KEY<nome da FK> REFERENCES < tabela da PK>(<nome da PK>)
86
87
EXERCICIO
1) Comando SQL para criar um banco de dados chamado locadora
a) create databases locadora;
b) create locadora;
c) create database locadora;
d) use database locadora;
2) Comando SQL para apagar um banco de dados chamado "supermercado"
a) delete database supermercado;
b) drop table supermecado;
c) drop supermercado;
d) drop database supermercado;
e) delete supermercado;
3) Comando SQL para entrar no banco de dados chamado "EEEP"
a) use database EEEP;
b) use table EEEP;
c) create EEEP;
d) usage EEEP;
e) use EEEP;
4) Comando SQL para mostrar todos os bancos de dados existentes;
a) show database;
b) show tables;
c) show databases;
d) show BD;
5) Comando SQL para apagar a tabela "produtos" do BD "supermercado"
a) drop table produtos;
b) delete table produtos;
c) drop supermercado;
d) drop table supermercado;
e) drop produtos;
88
2 - ALTER TABLE CHANGE ( ) Usado para trocar o nome e o tipo de uma coluna
3- DROP TABLE
89
90
Vamos usar como exemplo a tabela cliente que criamos no banco de dados
venda, se voc no criou essa tabela volte para pgina antes do exerccio onde
esto os cdigos da criao. Mas antes de inserir os dados na tabela bom ver
quais os campos existentes, o comando usado pode ser o DESCRIBE.
Agora vamos inserir na coluna nome Francisco no endereo Rua: 24 de Maio
n 324 e na cidade Fortaleza. Observe que no preciso inserir dados no campo
cliente_id, pois ele foi definido como AUTO_INCREMENT.
91
Vamos usar como exemplo a mesma tabela que usamos no exemplo anterior
do banco de dados venda que a tabela cliente, porm no vai ser preciso
mencionar os nomes dos campos basta repassar valores para todas as colunas.
Vamos inserir o cliente Pedro que mora na Av. Augusto dos Anjos n 2674
na cidade de Fortaleza. Observe que o primeiro valor que iremos inserir ser
zero(0), isso porque a primeira coluna cliente_id que foi declarada como
AUTO_INCREMENT.
92
CLUSULAS
10.7.
Para que possamos ver os dados dos clientes que inserimos no exemplo
passado, basta usar o comando SELECT * FROM cliente. Se voc no tem certeza
que o nome da tabela essa, use o comando SHOW TABLES e veja as tabelas
existentes dentro do BD.
93
FROM
WHERE
GROUP BY
HAVING
ORDER BY
DISTINCT
Exemplo WHERE
Se quisermos ver somente o nome e o endereo do cliente, como j foi dito
basta colocar os nomes das colunas depois do SELECT, porm quando temos
muitos registros e precisamos de uma informao especifica usamos a condio
WHERE que em portugus significado ONDE. Sempre a clusula WHERE vem
acompanhada de alguma condio, por exemplo:
SELECT nome, endereco FROM cliente WHERE cliente_id = 2 ;
Podemos ler o comando SQL da seguinte forma:
Selecione o nome e o endereo da tabela cliente onde cliente_id for igual a 2.
94
Exemplo ORDER BY
At o momento vimos como obter dados de uma tabela utilizando os
comandos SELECT e WHERE. Porm, frequentemente precisamos listar os dados
por uma ordem em particular. Pode ser por ordem ascendente ou descendente. Para
isso podemos utilizar a clusula ORDER BY para ordenar os dados. A sintaxe
bsica da clusula ORDER BY a seguinte:
SELECT < coluna > FROM < tabela > ORDER BY < coluna >;
95
OBS: Por padro o ORDER BY vem como ASC significa que os resultados
sero apresentados por ordem ascendente, ou seja, do menor para o maior.
Mais tambm pode ser DESC significa que os resultados sero apresentados
por ordem descendente, para isso acontecer voc precisa declara-lo.
Como exemplo irei usar uma tabela que criei anteriormente chamada produto:
96
Perceba que agora usei o DESC na coluna 2 que preo, ento ficou de forma
ascendente, ou seja, do maior para o menor, podemos usar a clusula ORDER BY
de vrias maneiras em situaes diferentes, basta saber como usa-lo.
97
Como exemplo usaremos a tabela cliente que foi usada nos exemplos
anteriores. Suponhamos que o cliente de nome Francisco se mudou, ento
precisamos atualizar o seu registro colocando o seu novo endereo.
98
OBS: Devemos passar sempre o WHERE, que uma espcie de filtro em nossa
tabela, porque seno o passarmos atualizaremos TODOS os dados da tabela e isso
pode acarretar diversos problemas, dependendo do tamanho e da complexidade da
sua tabela. Imagina se esquecermos de colocar uma condio em uma tabela de
1.000 registros e alterarmos todos os endereos dos clientes para um s.
99
Como exemplo vamos usar a mesma tabela que usamos nos comandos
INSERT, SELECT e UPDATE, que a tabela cliente do banco de dados venda.
Suponhamos que o Francisco no mais o nosso cliente, ento devemos exclui-lo
da nossa tabela, para isso usamos o comando DELETE.
100
FUNES DE AGREGAO
COUNT
SUM
MAX
MIN
AVG
101
102
103
104
OPERADORES RELACIONAIS
<
Menor que
>
Maior que
<>
Diferente
<=
>=
Igual a
BETWEEN
LIKE
OPERADORES LGICOS
AND
OR
NOT
105
Exemplo LIKE
Com este operador, podemos comparar Strings. O percentual (%) substitui
nenhum, um ou mais caracteres, j a sublinha (_) substitui somente um caractere.
Utilizando a combinao desses caracteres especiais com o que se quer localizar,
pode-se conseguir uma variedade muito grande de expresses. Veja na tabela a
seguir algumas possveis combinaes:
COMANDO
LIKE 'A%'
LIKE '%A'
LIKE '%A%'
LIKE 'A_'
DESCRIO
Todas as palavras que iniciem com a letra A;
Todas que terminem com a letra A;
Todas que tenham a letra A em qualquer posio;
String de dois caracteres que tenham a primeira letra A e o
segundo caractere seja qualquer outro;
LIKE '_A'
LIKE '_A_'
LIKE '%A_'
LIKE '_A%'
SELECT * FROM contatos WHERE nome LIKE ' < condio > ' ;
106
107
Utilizando AND / OR
O operador AND exibe os registros se tanto a primeira condio como a segunda
condio for verdadeira. O operador OR exibe os registros se a primeira condio ou a
segunda for verdadeira. Esses operadores so usados para filtrar registros com base
em mais de uma condio.
108
Exemplo BETWEEN
O comando BETWEEN permite fazer a seleo de um intervalo, entre um e
outro. A sintaxe da clusula BETWEEN a seguinte:
SELECT * FROM alunos WHERE idade BETWEEN 10 AND 20;
Este comando ir selecionar todas as linhas cuja coluna tiver um valor entre 10
e 20. Os valores podem ser nmeros, texto ou datas. Poderamos de outra forma
obter o mesmo resultado que seria:
SELECT * FROM alunos WHERE idade > = 10 AND idade < = 20;
109
EXERCICIO
Dada a tabela Alunos a seguir, escreva os comandos SQL que:
Matricula
Nome
Sexo
Idade
Marcelo Medeiros
35
25
Lucas Silva
Caroline Silva
19
Djalma Medeiros
65
Artur Paes
Eduarda Duda
110
111
10. Liste a quantidade de alunos com idade entre 10 e 20 anos que sejam do sexo
masculino.
13. Liste os nomes dos alunos que comeam com a letra A e de sexo masculino.
112
113
INTRODUO
114
115
116
117
CRIAO DO PROJETO
Vamos agora criar um novo projeto no Netbeans chamado SistemaLocadora
com os seguintes pacotes descritos abaixo:
Pacote DAO
Tudo relacionado ao banco de dados se encontra nesse pacote, as classes
esto divididas de acordo com o modelo para que fiquem mais organizadas.
118
Pacote Imagens
Todas as imagens do nosso projeto se encontram dentro desse pacote,
tudo isso para nvel de organizao.
Pacote Locacao
Esse pacote faz parte da interface com usurio(JFrame), porm ele foi
separado do pacote Viso por motivo de um melhor controle das suas classes.
Pacote Modelo
Dentro do pacote modelo temos todas as classes que possuem as variveis
encapsuladas com os mtodos getters e setters, chamada tambm de lgica
de negcios.
119
Pacote Principal
Nesse pacote temos a classe que possui o mtodo Main, essa classe
responsvel por chamar a tela de Login que por sua vez responsvel por
chamar a tela do Menu.
Pacotes de Visao
Foi dividido os pacotes que possuem telas (JFrame) de forma bastante
intuitiva, ou seja, todos possuem o nome Visao seguido da sua ao
( Visao.Alterar, Visao.Cadastrar, Visao.Consultar, Visao.Excluir )
120
Visao.Alterar
Visao.Consultar
Visao.Cadastrar
Visao.Excluir
121
Menu Principal
122
Cadastro de Funcionrio
Cadastro de Cliente
Cadastro de Categoria
123
Cadastro de Classificao
Cadastro de Filme
Cadastro de DVD
124
Cadastro de Locao
Consulta de Locao
Consulta de Cliente
125
Consulta de Filme
Consulta de DVD
126
Alterar e Excluir
As telas de alterar seguem o mesmo padro das de cadastros, porm
acrescenta um campo para digitar o cdigo que deseja que sofra alterao, por
esse motivo vou mostrar apenas o de alterar funcionrio como exemplo. E as
telas de excluir seguem um padro para todas, mudando apenas detalhes, por
esse motivo vou mostrar apenas o de excluir cliente como exemplo.
127
128
129
Definio do Driver
130
A classe de Conexo
131
Linha 3: importa as classes do pacote sql necessrias para conexo com banco
de dados.
Linha 10: o tratamento de excees em Java se d atravs dos blocos try, catch.
Tudo que estiver dentro do bloco try ser executado at que alguma exceo seja
lanada, ou seja, at que algo d errado.
Linha 11: carrega o driver que ser usado pela aplicao Java para realizar a
comunicao com o banco de dados.
Linha 12: declara a url necessria para conexo passando o nome do banco de
dados que iremos usar.
Linha 13: estabelece uma conexo por meio do objeto con usando a String url e
passando o login e a senha que foram definidas no momento da instalao do
Mysql.
Linha 15: caso a conexo no possa ser realizada por qualquer motivo ocorre a
exceo onde passa a executar o bloco catch.
Linha 16, 17: envia uma mensagem ao usurio informando que houve erro na
conexo com o banco de dados.
Linha 20: retorna o objeto con, se tudo ocorrer bem o objeto con recebeu a
conexo na linha 13.
132
A estrutura do DAO
Cliente o cliente um objeto que requer acesso fonte de dados para obter
e armazenar dados.
DAO o DAO abstrai a implementao de acesso a dados para o cliente a fim
de permitir um acesso transparente a fonte dedados.
BaseDeDado representa uma implementao de fonte de dados.
ResultSet representa os resultados de uma execuo de consulta.
TipoDeDado representa um objeto de transferncia usado como um
carregador de dados.
133
A superclasse ExecuteSQL.java
Linha 13, 17: cria os mtodos getCon e setCon, para acessar o objeto con
definido como private na linha 7, os mtodos so public, ou seja, so vistos por
qualquer outra classe do projeto.
134
Linha 8: importa a classe Funcionrio do pacote Modelo necessria para o uso dos
mtodos getters e setters.
135
Linha 15: cria o mtodo Logar() do tipo boolean, ou seja, irar retornar true ou
false. O mtodo recebe dois valores por parmetro que ser os valores de login e
Linha 28: se tudo ocorrer bem a varivel booleana finalResult passar a receber
um novo valor, ou seja, de false ela passa a ser true, isso servir para quando
formos usar esse mtodo na ao do boto entrar.
136
AO DE O BOTO ENTRAR
Ao do boto entrar
137
Linha 152, 153: cria as variveis login e senha do tipo String para receber os
valores digitado pelo usurio nos campos tfUsuario e tfsenha, os nomes dos
campos foram dados seguindo o padro textfield = tf + nome.
Linha 160: verifica se o retorno do mtodo Logar() igual a true, ou seja, nesse
momento pelo objeto sql chamado o mtodo Logar() passando as variveis login
e senha definidas nas linhas(152 e 153) e no mesmo instante j verifica o retorno
do mtodo.
Linha 162: a tarefa a ser executado pelo thread dever ser descrita pelo mtodo
run(). Ou seja, toda tarefa de carregar a barra de progresso e abrir a tela do menu
principal aps o carregamento, se encontra dentro desse mtodo.
Linha 166: define a velocidade que ser cheia a barra de progresso, atravs do
mtodo sleep() da classe Thread.
Linha 174: aps definido a ao que ser realizada pela Thead dentro do mtodo
run() chamado o mtodo start(), ou seja, nesse momento que o que foi definido
ser executado.
138
primeira a ser executada no projeto, basicamente definimos essa classe para abrir a
tela de login. Ela poderia ter qualquer nome mais escolhemos cham-la de
Main.java.
A classe Main.java
BARRA DE MENUS
Foi criada uma barra de menus com as respectivas aes que sero realizadas
(Cadastrar,
Consultar,
Alterar,
Excluir)
todas
possuem
os
mesmos
itens
Barra de Menu
139
INSERINDO MSCARAS
Existem varias formas de inserir mascaras em campos de texto para que o
usurio no digite, por exemplo, letras em datas ou at mesmo RG e CPF fora do
padro nacional. Vamos ensinar da maneira mais fcil, que usando as
propriedades do NetBeans.
Primeiramente necessrio que use o componente jFromattedTextField (campo
de texto formatado). Depois de selecionado o componente, clique em propriedades e
procure formatterFactory Vamos usar como exemplo o campo CPF do cadastro de
cliente.java. Formato: ###.###.###-##
140
CADASTRO DE CLIENTE
Criao do Mtodo Inserir_Cliente( )
Linha 27: cria o script de comandos em SQL que ser usado na consulta ao
banco de dados e o armazena na String sql. Um ponto a observar o uso do
caractere de interrogao(?), que ser substitudo por parmetros durante a
execuo do mtodo.
Linha 31 40: cada um dos parmetros usado no script em SQL deve ser
passado ao objeto ps por meio de mtodos apropriados. Existem diversos
mtodos que podem ser usados, dependendo do tipo de valor, por exemplo:
setString, setInt, setDouble etc. na linha 31 usamos os parmetros 1(referente a
primeira interrogao da linha 27) e a.getNome(referente ao contedo que ser
colocado no lugar do caractere de interrogao).
141
Ao de o Boto Cadastrar
Ao do Boto Cadastrar
142
Linha 430 439: guarda nas variveis do tipo String os dados digitado pelo
usurio nas TextFields, o mtodo usado para pegar o que foi digitado getText();
Linha 440 444: verifica se nenhuma das variveis esto vazias atravs do
mtodo equals( ), se alguma estiver vazia lanada uma mensagem informando
que nenhum campo pode estar vazio.
USANDO ARRAYLIST
O Java, por padro, possui uma srie de recursos prontos (APIs) para que
possamos tratar de estrutura de dados, tambm chamados de colees (collections).
Podemos dizer que ArrayList uma classe para colees. Uma classe genrica para
ser mais exato. Colees de qualquer tipo de dados e no somente de tipos
primitivos.
Voc pode criar seus objetos atravs de uma classe e agrup-los atravs de
ArrayList e realizar, nessa coleo, vrias operaes, como: adicionar e retirar
elementos, orden-los, procurar por um elemento especfico, apagar um elemento
especfico, limpar o ArrayList dentre outras possibilidades.
Ns vamos precisar usar o ArrayList para agrupar os dados vindos do banco,
para realizar os comandos INSERT, UPDATE ou DELETE no preciso usar um
143
144
Linha 73: se o objeto rs for diferente de null (linha 61) ento o mtodo retornar
a lista com os registros adicionados(linha 71) e devidamente agrupados.
Criao do Mtodo AtualizaTable().
Linha 45: define o titulo que aparecer no JFrame atravs do mtodo setTitle().
145
Mtodo AtualizaTable()
Linha 329, 330: cria um objeto de nome tbm do tipo DefaultTableModel para
trabalhar com um modelo que possa inserir deletar ou atualizar os dados de uma
tabela, que em nosso caso a tabela se chama jTable, por isso que usamos o
mtodo getModel() (linha 330) para poder manipular a tabela jTable.
Linha 331 333: cria a estrutura de repetio while para apagar os dados da
tabela antes de inserir novos, o mtodo getRowCount() retorna a quantidade total
de linhas, ento se a quantidade de linhas for maior que 0 ele entra na estrutura e
usa o mtodo RemoveRow() passando o valor 0 para apagar a tabela.
146
Linha 337 342: usado o mtodo setValueAt() para inserir os dados na tabela
passando o valor atravs do objeto tab da classe Cliente que chama o mtodo
get() se referindo ao valor que ser inserido na linha dinamicamente e na referida
coluna. Ento o mtodo setValueAt() recebe o valor, a linha e a coluna.
Exemplo
Linha 83, 84: a nica coisa que muda em relao ao mtodo ListarCliente() a
String sql que agora tem uma condio de seleciona pelo nome. Por isso
acredito que no seja necessrio colocar todo o mtodo, basta voc como um
bom programar com base no mtodo ListarCliente() fazer o restante do mtodo.
Criao do Mtodo Pesquisar_Cod_Cliente()
147
Ao de Pesquisar Cliente
ALTERAO DE CLIENTE
As telas de alterao seguem o mesmo padro das telas de cadastro,
mudando apenas que foi colocado mais um campo para digitar o cdigo do cliente
e um boto ok para consultar no banco de dados e listar as informaes
cadastradas colocando em cada campo o seu valor.
148
Esse mtodo serve para verificar se existe algum cliente com o idcliente igual
ao valor digitado pelo usurio, se o objeto rs for diferente de nulo(linha 295)
ento a varivel resultado passar a receber true como valor(linha 297). Esse
mtodo parecido com o mtodo que criamos Testar_Funcionrio() que
verificava se existe funcionrio cadastrado com aquele login e senha.
Criao do Mtodo CapturarCliente()
149
150
Linha 307 309: cria o comando update, para alterar os dados do cliente. O
objetivo desse modulo no explicar comandos sql, tendo em vista que todos
que esto estudando conexo com banco de dados em Java, j passaram pelo
modulo de banco de dados, mas se voc tem duvida sobre comandos sql, no
somente copie o comando mais entenda o que ele faz, esse um principio que
todo programador deve ter.
151
Mtodo InserirDados()
Esse mtodo recebe por parmetro a variavel cod do tipo inteiro e envia
para o mtodo CapturarCliente() guardando em um ArrayList o retorno do
mtodo(linha 654). A criao desse mtodo feita dentro da tela de alterar
cliente, ele ser chamado no momento do click do boto ok.
Acredito que no seja necessrio comentar linha por linha sendo que os
mesmos cdigos j foram usados e comentados em exemplos anteriores, se voc
no sabe o que est acontecendo em alguma linha de cdigo procure em
exemplos saber o que esse comando faz. Basicamente esse comando
responsvel por preencher os campos com informaes do cliente que pertence o
cdigo digitado.
152
Ao do Boto OK
Ao do boto OK
153
Ao de o Boto Alterar
Ao do boto alterar
154
Linha 478 788: guarda nas variveis do tipo String os dados dos TextFields
atravs do mtodo getText().
Linha 495, 496: converte para o tipo int as variveis que recebem o cdigo e o
numero, porque na criao da tabela os campos recebem do tipo inteiro.
Linha 499 509: envia para os mtodos set da classe Cliente.java atravs do
objeto da classe(linha 497) as variveis que receberam os dados atualizados.
155
EXCLUSO DE CLIENTE
A tela de excluso bastante simples, ela segue um modelo para todas as
outras, sabendo fazer a ao de uma, as outras ficam bastante simples. Algo
novo que ainda no vimos em nenhum exemplo at agora, o uso do
componente combobox. Preste ateno com colocar dados do banco dentro de
uma combobox porque isso ser muito usado.
Criao do Mtodo ListarComboCliente()
Esse mtodo responsvel por pegar os nomes dos clientes para listar
dentro da combobox. Perceba que usamos a clausula order by nome (linha 164)
para listar os nomes dos clientes em ordem alfabtica.
156
Mtodo AtualizaCombo()
Linha 268: para adicionar itens na combobox usamos o mtodo addItem(), para
que o primeiro cliente da lista no aparea no momento de carregar a tela,
adicionamos uma String vazia antes de adicionar os nomes.
157
Ao de Selecionar na combobox
Ao de Selecionar na combobox
158
Linha 282: para pegar o valor digitado em uma TextField usamos o mtodo
getText(), mas para pegar o valor selecionado na combobox preciso usar o
mtodo getSelectedItem().toString().
Linha
284:
ArrayList
de
nome
lista
recebe
retorno
do
mtodo
Linha 238: cria o comando sql para deletar o cliente que possui o idcliente e o
nome de acordo com os valores passados(linhas 242 e 243).
Linha 244: verifica se o mtodo executeUpdate() maio que zero, isso para saber
se alguma linhas da tabela foi afetadas, se for maior que zero retorna uma String
informando excludo com sucesso.
159
Ao de o Boto Excluir
Ao do boto excluir
Exemplo
Depois de selecionado o nome do cliente e apertado no boto OK
aparece uma mensagem perguntando se realmente deseja excluir o cliente.
160
CADASTRO DE FILME
Com base no que j foi ensinado usando o exemplo de clientes, acredito
que no ser preciso explicar novamente o mesmo processo para todos os
cadastros, ento vamos nos prender naquilo que ainda no ensinamos, como
por exemplo, carregar a capa do filme. E voc como um bom programador ir
fazer o restante dos cadastros, consultas, alteraes e excluses.
Linha 480: define atravs do mtodo setDialogTitle() qual ser o titulo que
aparecer na caixa de seleo.
161
Linha 484, 485: usa o mtodo setIcon do lbcapa para mostrar a imagem, de
forma que especifica o caminho do arquivo. Mais alm de especificar o caminho
do arquivo preciso dizer o nome dele, podemos saber o nome do arquivo
atravs do tfcapa (linha 483), ento basta usar o mtodo getText().
Exemplo
162
CADASTRO DE LOCAO
Espero que voc possa estar entendo os cdigos e conseguido realizar
as tarefas de cadastrar, consultar, alterar e excluir (Cliente, Filme, DVD,
Categoria, Classificao, Funcionrio). Se voc ainda no terminou essa parte
sugiro que no prossiga e se concentre nessas principais funcionalidades.
Criao do Mtodo Testar_DVD()
163
Ao do boto OK
164
Mtodo AtualizaDate()
Exemplo
String
Data formatada
Comentrio
dd/MM/yyyy
25/12/2010
Padro brasileiro
MM/dd/yyyy
12/25/2010
Padro americano
yyyy-MM-dd
2010-12-25
25 Dezembro
2010
16:23:34
dd MMMM yyyy
hh:mm:ss
165
166
Mtodo InserirDados()
167
Ao de o Boto Cadastrar
Exemplo
168
REALIZAR DEVOLUO
Para realizar devoluo o usurio escolhe o nome do cliente na combobox e
a tabela lista todas as locaes que pertencem a esse cliente e clicando na linha
da tabela abre uma nova tela para devolver o DVD. Com base nos exemplos
criados vocs sabem listar os nomes dos clientes dentro da combobox e tambm
sabem consultar e listar na tabela atravs do cdigo e do nome do cliente.
Acredito que no seja necessrio mostrar novamente os cdigos, volte na
parte que exclumos os clientes e tambm na de consultar e use a mesma lgica.
Vamos mostrar agora o evento do click na tabela. Siga o caminho de clicar com o
boto direito na tabela -> Eventos -> Mouse -> MouseClicked.
Criao da classe Listar.java
169
Exemplo
170
Exemplo de devoluo
171
CONCLUSO
172
Hino Nacional