Buscar

Padrões de Projeto Factory, DAO e Criação de Método de Busca de Aluno

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

UNIVERSIDADE VEIGA DE ALMEIDA 
UVA 
 
CURSO DE SISTEMA DE INFORMAÇÃO 
 
 
 
 
 
EDSON CANTUARIA DE AZEVEDO NETO 
 
 
 
 
 
 
 
 
 
Padrões de Projeto Factory, DAO e Criação de Método de Busca de Aluno 
 
 
 
 
 
 
 
 
 
 
Rio de Janeiro 
2023
 
EDSON CANTUARIA DE AZEVEDO NETO 
 
 
 
 
 
 
 
 
 
Padrões de Projeto Factory, DAO e Criação de Método de Busca de Aluno 
 
 
Trabalho apresentado para a Disciplina 
ANÁLISE E PROJETO DE SISTEMAS E 
INFORMAÇÃO II, pelo Curso de Sistema 
de Informação da Universidade Veiga de 
Almeida (UVA) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Rio de Janeiro 
2023
 
SUMÁRIO 
RESUMO..................................................................................................................... 3 
INTRODUÇÃO ............................................................................................................ 3 
DESENVOLVIMENTO ................................................................................................ 5 
1. Padrões de Projeto Factory ............................................................................ 5 
2. Padrões de Projeto DAO ................................................................................. 6 
3. Implementação do Método de Busca de Aluno e Tratamento de Exceção 
na Busca de Aluno .................................................................................................... 6 
4. Classe de Teste do Método de Busca de Aluno ........................................... 7 
5. Implementação do Banco de Dados MySQL ................................................. 9 
TELAS DE TESTE .................................................................................................... 12 
CONCLUSÃO ........................................................................................................... 13 
REFERÊNCIAS ......................................................................................................... 14 
 
 
 
 
 
 
 
3 
RESUMO 
Este trabalho acadêmico tem como objetivo apresentar a aplicação dos 
padrões de projeto Factory e DAO no contexto de um sistema de gerenciamento 
acadêmico. Além disso, será desenvolvido um método de busca de aluno, utilizando 
o banco de dados MySQL e a biblioteca JDBC. 
No início do trabalho, são descritas as características e vantagens dos padrões 
de projeto Factory e DAO. Em seguida, é apresentada uma introdução detalhada 
sobre o tema, contextualizando a importância desses padrões e a necessidade de um 
método de busca de aluno. 
Ao longo do trabalho, são abordados conceitos teóricos e exemplos práticos, 
demonstrando a aplicação dos padrões de projeto Factory e DAO, bem como a 
integração com o banco de dados MySQL. São apresentados trechos de código 
comentados das classes Aluno, AlunoDAO, ConnectionFactory e TesteAlunoDAO, 
além de um passo a passo para configurar o banco de dados e adicionar exemplos 
de alunos. 
O trabalho finaliza com uma síntese dos principais aprendizados e conclusões 
obtidas durante o desenvolvimento do projeto, destacando a importância dos padrões 
de projeto e do método de busca de aluno em sistemas com persistência de dados. 
Em suma, este trabalho acadêmico oferece uma visão abrangente sobre os 
padrões de projeto Factory e DAO, além de proporcionar a experiência prática de 
desenvolver um método de busca de aluno em um sistema de gerenciamento 
acadêmico, utilizando o banco de dados MySQL e a biblioteca JDBC. 
 
 
INTRODUÇÃO 
A utilização de padrões de projeto é uma prática comum no desenvolvimento 
de sistemas computacionais, tendo em vista sempre melhorar a sua estrutura, 
organização e a manutenção do código. Neste trabalho acadêmico, abordaremos dois 
padrões de projeto amplamente utilizados em aplicações com persistência de dados: 
Factory e DAO. Além disso, iremos desenvolver um método de busca de aluno, que 
será integrado a um sistema de gerenciamento de informações acadêmicas. 
4 
O objetivo deste trabalho é apresentar a aplicação prática dos padrões de 
projeto Factory e DAO, bem como demonstrar a criação de um método de busca de 
aluno. Para isso, utilizaremos a linguagem de programação Java e faremos uso do 
banco de dados MySQL, juntamente com a biblioteca JDBC, para armazenar e 
recuperar os dados dos alunos. 
O padrão de projeto Factory possui como principal foco encapsular a lógica de 
criação de objetos em uma classe separada, conhecida como fábrica. Isso permite 
desacoplar a criação de objetos do restante do código, tornando-o mais flexível e 
facilitando a manutenção e visibilidade do código. Já o padrão de projeto DAO (Data 
Access Object) tem como objetivo separar a lógica de acesso aos dados da aplicação, 
proporcionando uma camada de abstração entre o código da aplicação e o banco de 
dados. 
No contexto deste trabalho, o método de busca de aluno será responsável por 
recuperar informações específicas de um aluno a partir de sua matrícula. Essa 
funcionalidade é fundamental em um sistema de gerenciamento acadêmico, onde os 
usuários precisam obter dados detalhados sobre um aluno em particular. Além disso, 
iremos implementar o tratamento de exceção para lidar com situações em que o aluno 
não for encontrado, pois pode haver erros durante a digitação e é necessário ter um 
método para lidar com eles. 
Através deste trabalho, será possível compreender as características e 
vantagens dos padrões de projeto Factory e DAO, bem como a importância de separar 
as responsabilidades e aplicar boas práticas de programação. Além disso, iremos 
demonstrar a integração com um banco de dados MySQL e a utilização da biblioteca 
JDBC para realizar as operações de consulta e manipulação dos dados. 
No desenvolvimento deste trabalho, utilizaremos a IDE Eclipse para escrever e 
executar o código Java, juntamente com o MySQL Workbench para configurar e 
gerenciar o banco de dados MySQL. Será realizada uma simulação de um sistema 
acadêmico da fictícia Universidade Vento Úmido, onde os alunos são cadastrados e 
suas informações são armazenadas no banco de dados. 
No próximo capítulo, iremos explorar as características e vantagens dos 
padrões de projeto Factory e DAO, apresentando conceitos teóricos e exemplos 
práticos. Em seguida, detalharemos a implementação do método de busca de aluno, 
incluindo o tratamento de exceção. Por fim, realizaremos testes funcionais do método 
5 
de busca e concluiremos o trabalho com uma síntese dos principais aprendizados e 
conclusões obtidas. 
 
 
DESENVOLVIMENTO 
1. Padrões de Projeto Factory 
O padrão de projeto Factory é um padrão criacional que fornece uma interface 
comum para a criação de objetos, ocultando a lógica de criação e permitindo uma 
maior flexibilidade. Suas características incluem: 
• Encapsulamento da lógica de criação de objetos em uma classe ou método 
dedicado; 
• Possibilidade de criar diferentes implementações de um objeto sem 
implementar diretamente ao código cliente; 
• Aumento da coesão e redução do acoplamento entre as classes; 
• Facilidade na manutenção, visualização e identificação do código. 
 
Suas principais vantagens são: 
 
• Código mais legível e organizado; 
• Facilidade na criação de novas instâncias de objetos; 
• Flexibilidade para alterar ou adicionar novas implementações sem afetar o 
código existente; 
• Facilita a adoção de boas práticas de programação, como o princípio da 
inversão de dependência. 
 
 
 
6 
2. Padrões de Projeto DAO 
O padrão de projeto DAO (Data Access Object) é um padrão estrutural que 
separa a lógica de acesso aos dados do restante da aplicação. Suas características 
incluem: 
 
• Encapsulamento da lógica de acesso aos dados, como consultas SQL, em 
classes DAO específicas; 
• Fornecimento de métodos padronizados para realizar operações CRUD 
(criação, leitura, atualização e remoção) nos objetos de domínio; 
• Facilidade na substituição outroca de tecnologias de persistência sem afetar o 
restante da aplicação. 
 
As vantagens da utilização do padrão DAO são: 
 
• Separação das responsabilidades entre a lógica de negócio e a lógica de 
acesso a dados; 
• Melhoria na manutenibilidade e no teste do código; 
• Maior flexibilidade na escolha das tecnologias de persistência; 
• Facilidade na implementação de consultas complexas e reutilização de código. 
 
3. Implementação do Método de Busca de Aluno e Tratamento de 
Exceção na Busca de Aluno 
A classe AlunoDAO será expandida com a implementação do método 
"buscaAluno", que permitirá a busca de um aluno específico no banco de dados com 
base em sua matrícula. O método terá o seguinte formato: 
(Copiado da IDE Eclipse) 
 
import java.sql.*; 
 
public class AlunoDAO { 
 private Connection conexao; 
 
 public AlunoDAO() { 
 this.conexao = ConnectionFactory.criaConexao(); 
7 
 } 
 
 public Aluno buscaAluno(int matricula) throws SQLException { 
 String sql = "SELECT * FROM alunos WHERE matricula = ?"; 
 PreparedStatement stm = conexao.prepareStatement(sql); 
 stm.setInt(1, matricula); 
 ResultSet rs = stm.executeQuery(); 
 
 if (rs.next()) { 
 int matriculaAluno = rs.getInt("matricula"); 
 String nomeAluno = rs.getString("nome"); 
 Aluno aluno = new Aluno(matriculaAluno, nomeAluno); 
 rs.close(); 
 stm.close(); 
 return aluno; 
 } else { 
 rs.close(); 
 stm.close(); 
 throw new SQLException("Aluno não encontrado"); 
 } 
 } 
} 
 
Juntamente foi implementado um tratamento de exceção no método 
"buscaAluno" para lidar com possíveis erros durante a consulta ao banco de dados. 
Caso ocorra uma exceção, a mensagem de erro será exibida para o usuário. 
 
 
4. Classe de Teste do Método de Busca de Aluno 
Será criada uma classe de teste chamada "TesteAlunoDAO" para verificar o 
funcionamento do método "buscaAluno". O usuário será solicitado a informar o 
número de matrícula do aluno desejado, e em seguida, as informações do aluno 
encontrado serão exibidas na tela. 
(Copiado da IDE Eclipse) 
 
import java.sql.SQLException; 
import java.util.Scanner; 
 
public class TesteAlunoDAO { 
 public static void main(String[] args) { 
 Scanner scanner = new Scanner(System.in); 
 AlunoDAO alunoDAO = new AlunoDAO(); 
 
 boolean executar = true; 
 while (executar) { 
 System.out.print("Digite a matrícula do aluno (ou 0 para sair): "); 
8 
 int matricula = scanner.nextInt(); 
 
 if (matricula == 0) { 
 executar = false; 
 } else { 
 try { 
 Aluno aluno = alunoDAO.buscaAluno(matricula); 
 if (aluno != null) { 
 System.out.println("Aluno encontrado:"); 
 System.out.println("Matrícula: " + aluno.getMatricula()); 
 System.out.println("Nome: " + aluno.getNome()); 
 } else { 
 System.out.println("Aluno não encontrado."); 
 } 
 } catch (SQLException e) { 
 System.out.println("Ocorreu um erro ao buscar o aluno: " + 
e.getMessage()); 
 } 
 
 System.out.println(); 
 } 
 } 
 
 scanner.close(); 
 System.out.println("Programa encerrado."); 
 } 
} 
 
 
4.1 Aluno.java 
 
A classe "Aluno" possui atributos como matrícula, nome, curso, e-mail, entre 
outros, que são utilizados para armazenar as informações de cada aluno. Além disso, 
ela possui os métodos getter e setter para acessar e modificar esses atributos. 
Essa classe é fundamental no contexto do projeto, pois permite a criação de 
objetos do tipo "Aluno" que podem ser armazenados no banco de dados, consultados 
a qualquer momento, atualizados ou removidos por meio da interação com a classe 
"AlunoDAO". Ela serve como um modelo de dados que representa os alunos do 
sistema acadêmico, facilitando a manipulação dessas informações de forma 
estruturada e orientada a objetos. 
(Copiado da IDE Eclipse) 
 
public class Aluno { 
 private int matricula; 
 private String nome; 
 
 public Aluno(int matricula, String nome) { 
 this.matricula = matricula; 
 this.nome = nome; 
9 
 } 
 
 public int getMatricula() { 
 return matricula; 
 } 
 
 public String getNome() { 
 return nome; 
 } 
 
 public void setMatricula(int matricula) { 
 this.matricula = matricula; 
 } 
 
 public void setNome(String nome) { 
 this.nome = nome; 
 } 
} 
 
 
 
 
5. Implementação do Banco de Dados MySQL 
Para integrar o sistema com um banco de dados MySQL, foram seguidos os 
seguintes passos: 
 
a) Configurar o ambiente 
 
• Certificar-se de que o MySQL está instalado e em execução no ambiente local; 
• Adicionar a biblioteca do JDBC do MySQL ao projeto. 
 
b) Criar o banco de dados 
 
• Abrir o cliente do MySQL, como o MySQL Workbench; 
• Executar o seguinte comando para criar o banco de dados chamado 
"uva": 
 
 
 
Imagem retirada do MySQL Workbench 
10 
c) Criar a Tabela 
 
• Executar o código no banco de dados: 
 
 
 
 
 
 
 
 
 Imagem retirada do MySQL Workbench 
 
 
d) Inserir Alunos 
 
 
 Imagem retirada do MySQL Workbench 
 
5.1 ConnectionFactory.java 
 
A classe "ConnectionFactory" contém métodos estáticos que são responsáveis 
por criar e fornecer instâncias da classe "Connection", que representa uma conexão 
com o banco de dados. Essa classe utiliza a biblioteca JDBC (Java Database 
Connectivity) para realizar a conexão com diferentes tipos de bancos de dados. 
No método "criaConexao()", são definidos os parâmetros de conexão, como o 
endereço do banco de dados, a porta, o nome do banco, o usuário e senha de acesso. 
Através da chamada do método "DriverManager.getConnection()", a conexão com o 
banco de dados é estabelecida e um objeto do tipo "Connection" é retornado. 
 
Neste exemplo o USER e PASSWORD definidos são root, no ato da utilização 
do ConnectionFactory é imprescindível colocar os dados corretos na hora da criação 
do banco de dados, assim como identificar a URL correta. 
(Copiado da IDE Eclipse) 
 
11 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.SQLException; 
 
public class ConnectionFactory { 
 private static final String URL = "jdbc:mysql://localhost:3306/uva"; 
 private static final String USER = "root"; 
 private static final String PASSWORD = "root"; 
 
 public static Connection criaConexao() { 
 try { 
 return DriverManager.getConnection(URL, USER, PASSWORD); 
 } catch (SQLException e) { 
 System.out.println("Erro ao criar conexão com o banco de dados: " + 
e.getMessage()); 
 return null; 
 } 
 } 
} 
 
 
A utilização da classe "ConnectionFactory" traz vantagens como a 
centralização da criação e configuração da conexão, facilitando a manutenção do 
código e a possibilidade de reutilização em diferentes partes do sistema. Além disso, 
ela permite o controle e configuração de diferentes parâmetros de conexão de forma 
flexível e transparente para as classes que a utilizam. 
 
 
 
12 
TELAS DE TESTE 
Adicionado o Aluno Edson com matrícula 122: 
 
Captura de Tela da IDE Eclipse – Fonte: Edson Cantuaria 
 
Foi adicionado um loop para caso seja necessário a procura de mais uma 
matrícula. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13 
Já quando for encontrado um erro na execução da busca da matrícula: 
 
 
Captura de Tela da IDE Eclipse – Fonte: Edson Cantuaria 
 
Logo se der um erro vai informar que o Aluno não foi encontrado, porém ao redigitar 
a matrícula correta, o programa já vai fazer essa busca, e assim para encerrar o 
programaé necessário informar a tecla 0. 
 
CONCLUSÃO 
Este trabalho acadêmico apresentou a implementação dos padrões de projeto 
Factory e DAO em um sistema de gerenciamento de alunos, juntamente com a criação 
do método de busca de aluno. Foram discutidas as características e vantagens desses 
padrões, bem como a importância da separação de responsabilidades e da utilização 
de boas práticas de programação. 
 
Através do uso do padrão Factory, foi possível encapsular a lógica de criação 
de objetos, proporcionando maior flexibilidade e facilitando a manutenção do código. 
Já o padrão DAO permitiu separar a lógica de acesso aos dados do restante da 
aplicação, melhorando tanto a organização quanto também no momento de testar o 
código. 
14 
A implementação do método de busca de aluno, juntamente com o tratamento 
de exceção, possibilitou a obtenção de informações específicas de um aluno a partir 
de sua matrícula. Isso contribui para uma maior eficiência e usabilidade do sistema. 
Por fim, a integração com o banco de dados MySQL, utilizando o JDBC, 
permitiu armazenar e recuperar os dados dos alunos de forma persistente, garantindo 
a confiabilidade das informações. 
O desenvolvimento deste trabalho proporcionou uma experiência prática na 
aplicação dos padrões de projeto estudados, além de evidenciar a importância da 
utilização de boas práticas e padrões no desenvolvimento de sistemas 
computacionais. 
 
 
REFERÊNCIAS 
 
DEITEL, P. Java: como programar. 10. ed. São Paulo: Pearson Education do 
Brasil, 2017. ISBN: 978-85-430-0479-2. Biblioteca Virtual. 
MANZANO, J. A. N. G.; COSTA JUNIOR, R. A. Java 7 - Programação de 
computadores: guia prático de introdução, orientação e desenvolvimento. São Paulo: 
Érica, 2011. ISBN: 978-85-365-1933-3. Minha Biblioteca. 
Oracle. (s.d.). JDBC Driver Downloads. Utilizado de: 
https://www.oracle.com/database/technologies/appdev/jdbc-downloads.html Acesso 
em 02 de jun. de 2023.

Continue navegando