= Criar Camada de Persistência = == 1 Descrição == A camada de persistência de dados é parte do modelo de negócios, e é a única forma de acessar dados do banco de dados. As classes da camada são representações dos repositórios do banco de dados e implementam minimamente métodos para seleção, inserção, atualização, e remoção de tuplas nas tabelas do banco de dados. Cada repositório deve ser representado por uma classe contendo mapeamento de cada campo do repositório na forma de atributo protegido e métodos públicos para obter e definir este atributo. Estas classes devem ser armazenadas na pasta vo da estrutura de pastas. As rotinas de manipulação de dados no SGBD são executadas por classes que herdam a classe vo correspondente ou seja cada classe de manipulação de dados extende de uma classe de definição dos campos. A classes de manipulação de dados implementam a classe que define os métodos de manipulação de dados. A execução do método selectData deve retornar sempre um array de objetos do tipo vo, o método insertData deve retornar o identificador da tupla do último registro inserido, os métodos updateData e deleteData retonam o número de registros afetados pela execução do código. O acesso ao banco de dados é feito utilizando um objeto de conexão implementado conforme o padrão singleton, e os parâmetros para a conexão com o banco de dados devem ser mantidos na pasta config contendo pelo menos as constantes DB_HOST, DB_PORT, DB_NAME, DB_USER, DB_PASSWD. class sample.vo protected sample_value; public getSampleValue() return sample_value; public setSampleValue(data) return void; class sample.dao extends !SampleVO implements !DaoInterface public selectData(where, order, limit) return array sample.vo; public insertData(where) return int new id; public updateData(where) return int update lines; public deleteData(where) return deleted lines; public customSelect(sql) return array; Os métodos de inserção e atualização devem ter rotinas para impedir injeção de SQL e validação de tipagem dos dados antes da inserção, retornando erro em caso de insucesso na validação. Todos os erros retornados pelo SGDB tem que levantar exceção que deve ser tratado. Os objetos de persistência devem ser gerados automaticamente por engenharia reversa com acesso direto ao banco de dados ou pela leitura de arquivo de instalação contendo uma representação da estrutura do banco de dados a ser criado. Baseado neste arquivo a aplicação conecta-se ao bd e executa a criação ou alteração necessária e gera todos os arquivos de persistência necessários para a representação dos dados. == 2 Atores == 1. Desenvolvedores do sistema == 3 Pré-condições == 1. Ter realizado o UC Criar Estrutura de Pastas 2. Ter acesso ao servidor de banco de dados == 4 Eventos == 1. Desenvolvedor cria modelo de dados da aplicação. 2. Desenvolvedor configura acesso ao SGBD. 3. Desenvolvedor configura arquivo de descrição do banco de dados {A1} 4. Desenvolvedor executa aplicação que realiza criação dos arquivos de persistência. 5. Sistema verifica se já existe arquivo com o mesmo nome, caso existe solicita intervenção do usuário com as opções sobrescrever ou manter o arquivo. {E1} == 5 Eventos Alternativos == {A1} Não gera arquivo de configuração e cria classes a partir de engenharia reversa. == 6 Tratamento de Erros == {E1} No caso de não ser possivel escrever em disco apresentar a mensage {M1}, se o usuário optar pela opção cancelar encerra o fluxo, tentar novamente executa novamente a instrução e ignorar executa a próxima linha de código. == 7 Mensagem == {M1} Problemas na criação do arquivo, deseja Tentar Novamente | Ignorar | Cancelar == 8 Pós-condições == Arquivos de persistência criados. Configurações de acesso ao banco de dados criada. Banco de dados criado. == 9 Regras de Negócio == Não relevante. == 10 Telas Envolvidas == Não relevante. == 11 Notas ==