Curso Técnico em Informática – 4º. Módulo
Disciplina de Banco de Dados II
Professora Madalena Pereira da Silva
Lista de Exercícios
Projeto Contatos
Objetivo: o objetivo desta lista visa investigar o seu conhecimento sobre a estrutura MVC, o
padrão de projeto DAO, e o seu conhecimento na linguagem de programação Orientada a
Objetos Java.
Questões sobre a classe ConnectionDataBase
1) Em qual classe o método getConnection, da classe ConnectionDataBase, está sendo
chamado?
2) Porque o nosso projeto está imprimindo várias vezes a frase:
"Conectando ao Banco de Dados"?
3) Como contornar o problema da questão 2, usando o mesmo método getConnection?
Questões sobre a classe GenericDao
4) Qual a vantagem de criar a classe GenericDao? E porque a mesma é abstrata?
5) Qual o objetivo de criar um construtor com encapsulamento do tipo protected na
classe GenericDao? E o que exatamente está sendo realizado no construtor de
GenericDao?
6) Porque foi criado o método getConnection na classe GenericDao? O mesmo é
obrigatório? Existe outra forma de usar a variável "conexão", fazendo alguma
alteração no código?
7) Porque os métodos (save, update e delete) da classe GenericDao recebem como
parâmetro "Object... parametros"? E porque eles são protected?
8) Qual a finalidade da estrutura de repetição (laço for) dentro dos métodos (save,
update e delete) na classe GenericDao?
9) Sabe-se que tanto o objeto "Statement" quanto o "PreparedStatement" são usados
para enviar comandos SQL ao SGBD. No entanto, no corpo dos métodos (save, update
e delete) da classe GenericDao está sendo usado "PreparedStatement", ao invés de
"Statement". Qual a diferença de usar um ou outro? Além disso, existe algum ganho
ao programador e/ou desempenho para manipular o BD com uso do
"PreparedStatement" quando comparado com "Statement"?
10) Apresente um exemplo, com "parte" de código que demonstre as diferenças entre o
uso do objeto "Statement" e "PreparedStatement".
11) Em todos os métodos da classe ContatoDao (Salvar, alterar e excluir) está sendo
passado como parâmetro aos métodos da super classe (save, update e delete) um
string SQL. Observe que em todas as strings SQL tem o uso da interrogação (?). O que
exatamente isso significa para os métodos:
a) Salvar
b) Alterar
c) Excluir
12) Porque os métodos (encontrarContatos e procurarPorNome) foram criados na classe
ContatoDao, ao invés de serem criados na classe GenericContatoDao?
13) Qual a função do objeto ResultSet dentro dos métodos (encontrarContatos e
procurarPorNome), da classe ContatoDao?
14) Qual a função dos seguintes métodos, usados na classe ContatoDao:
a) executeQuery
b) close:
c) next usado no ResultSet
Questões sobre a classe ContatoContato
15) A classe contato foi criada no pacote Model. Em qual local, incluindo a criação de um
novo pacote, você acha mais apropriado incluir a respectiva classe?
Questões sobre a classe ContatoController
16) No nosso projeto, existe a necessidade da criação da classe ContatoController?
Justificar a resposta.
17) Em que momento a classe ContatoController se comunica com a classe GenericDao e
ContatoDao? Justificar.
18) Porque na classe ContatoController foram criados novos métodos (Salvar, alterar e
excluir), se eles já existem em ContatoDao?
Questões sobre a classe ContatoFrame
19) Em que momento a classe ContatoFrame se comunica com a classe ContatoController?
Justificar.
20) Como a classe ContatoFrame consegue obter acesso aos métodos consultarContatos()
e procurarPorNome() da classe ContatoDao?
21) Como foram implementados os métodos:
a) onClickExcluir
b) onClickAlterar
c) onClickSalvar
d) onClickLocalizar
22) Como foram implementados os métodos:
a) onClickAnterior
b) onClickProximo
c) onClickPrimeiro
d) onClickUltimo
23) De onde o método getValores(), está buscando os dados?
Download

Curso Técnico em Informática – 4º. Módulo Disciplina de Banco de