Prévia do material em texto
Universidade Veiga de Almeida
Programação orientada a objetos III
Prof. MARCO AURELIO NOVAES ESTEVES
Nova Iguaçu, Rio de Janeiro
2024.2
a) Cite as características e vantagens do modelo de projeto Factory.
Pode se dizer que o modelo Factory method, é um padrão que define
uma interface para criar um objeto, mas permite às classes decidirem
qual classe instanciar, uma vantagem do factory method é que este
padrão pode retornar a mesma instância várias vezes, ou também pode
retornar a sua subclasse, invés de um objeto daquele tipo.
b) Cite as características e vantagens do modelo de projeto DAO.
O padrão de projeto DAO permite que, por meio de uma única classe,
seja realizada toda a lógica de controle de acesso ao banco de dados,
separando a lógica de negócio das outras classes. Falando de
vantagens, também, a principal vantagem do Modelo DAO é ter um local
onde todo o acesso a dados será concentrado.Ao invés de ter várias
classes que manipulam dados espalhadas pela aplicaçã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. d) Implemente o tratamento de
exceção no método de busca de 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;
}
}
e) Implemente um teste de funcionamento do 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\naluno:%d\n",aluno.getNome(),aluno.getMatricula(),alun
o.getIdaluno());
conexao.close();}}
Testes: