DDD_2SEMESTRE_CP2

Data Acess Object

Nesse Checkpoint de Domain Driven Design, foi feito um exemplo simples de DAO utilizando a linguagem de programação Java em conjunto com o banco de dados da Oracle, sendo possivel realizar as funções básicas de um CRUD como pesquisar, deletar, criar e atualizar algum dado no banco. Sendo composto pelos seguintes pacotes:

image

Interface

Nela se encontram as funções que o DAO irá implementar, mostrando seus nomes, retornos, argumentos e as exceções que se esperam.

image

Exception

Foi criada uma exceção para o caso do código utilizado para fazer ações como procurar ou até mesmo atualizar, não for encontrado.

image

Factory

Para que a conexão não seja criada nos próprios métodos do DAO, fazendo-o ter tambem essa responsabilidade, foi criada a classe ConnectionFactory, que será responsável por receber o usuário e senha para se conectar ao banco de dados Oracle e instanciar um objeto do tipo Connection para que seja utilizado pelo DAO.

image

Model

No projeto será utilizado o model Aluno que tem os mesmos atributos que a tabela no banco de dados, tendo dois construtores onde o primeiro solicita todas as informações e o segundo não solicita o codigo, pois o método criar ele ativa uma sequence no banco de dados oracle para atribuir um código ao aluno em vez de ser atribuido manualmente na view. O restante que compôem o model são os getters e setters, foi feito um toString para que não mostre um objeto do tipo Aluno como um endereço de memória e uma função básica de retornar as informações para que seja possivel velas formatadas no console.

image

View

Foi feita uma view simples para testar o DAO onde ela contem no inicio duas variáveis do tipo string no inicio para que sejam informados os dados de usuario e senha do banco de dados, logo em seguida será instanciada uma Connection com esses dados e instanciado o DAO. A interação será feita com o uso do JOptionPane, que fará uma função semelhante a um menu, recebendo qual opção o usuário deseja utilizar e dependendo do caso ele poderá tambem ser utilizado para coletar as informações em caso de cadastro de um aluno ou atualização dos dados por exemplo.

DAO

Para a construção do DAO foram utilizadas variáveis do tipo String como private static final, para armazenar a parte SQL que será utilizada nos PreparedStatements e uma variavel do tipo Connection pois o construtor do DAO precisará de uma Connection para ser instanciado.

image

image

O DAO tambem contem um médoto de nome parse que receberá um ResultSet para coletar as informações de um SELECT e instanciar um objeto do tipo Aluno e retorna-lo.

image

Os demais métodos são as implementações da interface, sendo um exemplo deles o cadastrar a seguir:

image

SQL

No projeto também contem dois scripts sql caso precise criar a tabela e popula-la a fim de testar o projeto. Ambos se encontram no diretório SQL do projeto.