Prévia do material em texto
Programação orientada a objetos 3 Padrões de Projeto Factory, DAO e Criação de método de Busca de Aluno Nome: Juliana Tavares Lacerda da Rocha Matrícula: 1200104960 Turno: EAD OBJETIVO: Em um aplicativo com persistência de dados geralmente é preciso aplicar padrões de projeto Factory e DAO para desenvolver funcionalidades de criação, leitura, atualização e remoção de itens do banco de dados. Um dos métodos mais importantes nesse tipo de aplicativo é a busca de registros a partir de um conjunto de parâmetros de consulta. Na classe AlunoDAO explanada nesta unidade foram desenvolvidas algumas funcionalidades de listagem de informações, inclusão e remoção de registros, mas ainda não foi implementado um método de busca de um aluno a partir de sua matrícula. Imagine a seguinte situação: um usuário precisa usar o aplicativo para buscar informações sobre um determinado aluno e as informações estão armazenadas no banco de dados. A interface do aplicativo solicita que o professor entre com o código da matrícula para utilizar como índice de consulta na base de dados e retorna as informações desejadas sobre o aluno. No desenvolvimento de sistemas computacionais com acesso a banco dados é recomendável a utilização de padrões de projeto específicos para facilitar a manutenção do código, diminuindo o acoplamento e aumentando a coesão. a) Cite as características e vantagens do modelo de projetoFactory. b) Cite as características e vantagens do modelo de projeto DAO. c) Crie um método responsável por realizar a busca de um aluno específico no banco de dados usando a matrícula como parâmetro de entrada e retornando as informações sobre o aluno. d) Implemente o tratamento de exceção no método de busca de aluno. e) Implemente um teste de funcionamento do método de busca de aluno. Procedimentos para elaboração: Para elaborar a atividade você deve: 1º passo: Descrever as características e vantagens dos modelos de projeto Factory. 2º passo: Descrever as características e vantagens dos modelos de projeto DAO. 3º passo: Criar um método “buscaAluno” na classe AlunoDAO. O parâmetro de entrada será “idmatricula” e retorna o objeto Aluno encontrado. 4º passo: Implementar o tratamento de exceção, caso o aluno não seja encontrado. 5º passo: Criar uma classe de teste para testar o método “buscaAluno”: entrar um número de matrícula pelo teclado e exibir os dados do aluno encontrado. Resposta: a) Cite as características e vantagens do modelo de projeto Factory. O modelo de projeto Factory é uma abordagem de desenvolvimento de software que utiliza fábricas de objetos para criar instâncias de classes. Ele oferece vantagens como encapsulamento da lógica de criação, abstração para o cliente, flexibilidade na adição de novos objetos, reutilização de código, facilidade de manutenção, testabilidade e padronização. O modelo Factory simplifica a criação de objetos em sistemas de software, permitindo um desenvolvimento mais eficiente e organizado. b) Cite as características e vantagens do modelo de projeto DAO. O modelo de projeto DAO (Data Access Object) é uma abordagem de desenvolvimento de software que separa a lógica de acesso a dados do restante do código. Ele oferece vantagens como a separação de responsabilidades, abstração do acesso a dados, reutilização de código, manutenção simplificada, testabilidade, segurança e padronização. O modelo DAO permite uma melhor organização, escalabilidade e qualidade do código, tornando o desenvolvimento de aplicações mais eficiente e facilitando a manutenção. c) Crie um método responsável por realizar a busca de um aluno específico no banco de dados usando a matrícula como parâmetro de entrada e retornando as informações sobre o aluno. package ava1; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; public class AlunoDAO { private Connection conexao; public AlunoDAO() throws SQLException {this.conexao = ConnectionFactory.criaConexao(); } public Aluno buscaAluno(int idMatricula) throws SQLException{ String sql = "SELECT * FROM alunos WHERE matricula = ?"; PreparedStatement stm = conexao.prepareStatement(sql); stm.setInt(1,idMatricula); ResultSet rs = stm.executeQuery(); Aluno aluno = new Aluno(); if (rs.next()){ aluno.setMatricula(rs.getInt("matricula")); aluno.setNome(rs.getString("nome")); aluno.setIdaluno(rs.getInt("idaluno")); } else{ throw new SQLException("Aluno nao existe."); } rs.close(); stm.close(); return aluno; } } d) Implemente o tratamento de exceção no método de busca de aluno. package ava1; import java.sql.Connection; import java.sql.SQLException; import java.util.Scanner; public class TesteAluno { public static void main(String[] args)throws SQLException { System.out.println("Abrindo Conexao!"); Connection conexao = ConnectionFactory.criaConexao(); System.out.println("Conectado"); System.out.printf("Digite aqui sua matricula: "); Scanner input = new Scanner(System.in); String stridmatricula = input.nextLine(); int idmatricula = Integer.parseInt(stridmatricula); AlunoDAO alunodao = new AlunoDAO(); Aluno aluno = (alunodao.buscaAluno(idmatricula)); System.out.printf(" nome:%s\n idmatricula:%d\n aluno:%d\n",aluno.getNome(),aluno.getMatricula(),aluno.getIdaluno()); conexao.close(); } } e) Implemente um teste de funcionamento do método de busca de aluno. Telas de teste: