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:
Nela se encontram as funções que o DAO irá implementar, mostrando seus nomes, retornos, argumentos e as exceções que se esperam.
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.
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.
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.
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.
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.
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.
Os demais métodos são as implementações da interface, sendo um exemplo deles o cadastrar a seguir:
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.