1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Onde por classe que salva no banco e controla upload de arquivos?

Pessoal, na minha aplicação tenho um controller que trata os dados vindo de um form: Contestar.java. Esse controller tem que receber uns arquivos e salvar o arquivo no sistema de arquivos e salvar o caminho desse arquivo no db. Como eu acho que isso vai se tornar comum na aplicação, quero criar uma classe Uploader que irá salvar o arquivo e guardar o caminho no banco. Eu já tenho o UploadDAO. Seria correto colocar o código que salva os arquivos dentro de UploadDAO.save()? E se eu criar uma classe Uploader.save() que chama o UploadDAO e salva o arquivo? Se essa for a melhor opção, onde eu devo colocar essa classe: model ou controller?

Daí já vem a minha segunda pergunta: seria correto eu criar uma pasta lib pra esses tipos de classes? Sempre tive problemas em escolher onde salvar cada classe. Seria correto então ter a seguinte estrutura: Controllers, Models, Views, Libs?

EDIT:

Na verdade seria mais ou menos assim: Tenho várias telas que enviam mensagens de texto para uma lista e essa mensagens também podem ter anexos. Para adicionar as mensagens não pode ser um controller porque dependendo da página onde o usuário requisitar, tenho cálculos diferentes sendo realizados. Então decidi criar uma classe que anexa os arquivos desses diferentes controllers. A questão é: Essa classe que salva os arquivos trata do sistema de arquivos e eu ainda tenho a mensagensDAO que salva a mensagem de texto e uma referência ao arquivo. Seria interessante criar uma classe Mensagens que ao chamar Mensagens.save() salvaria tanto o arquivo no sistema de arquivos quanto o texto e a referência no banco de dados? Se sim, essa classe eu coloco onde? Na pasta lib? Porque não enxergo ela como um controller e não sei se se encaixaria como uma model...

  • Já cogitou criar um Controller para gerenciar os uploads? A classe de DAO cuidaria apenas de registrar o caminho do arquivo. Obs: não é crime ter pastas com outros nomes, não seja tão apegado à sigla MVC, criando somente o que é explícito. Às vezes, é preciso mais (usando com bom senso, é claro). Por exemplo, ter classes Helper (em uma pasta helper) para este tipo de necessidade (como gerenciamento de arquivos)

    TerraSkilll   15 de jun de 2015
  • O controller que deveria receber o upload faz diversos outros cálculos, eu precisaria submeter para ele. Nesse caso seria aceitável ter uma lib.Uploader.save()?

    DaniloM   15 de jun de 2015
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags design-patterns java-ee dao ou faça a sua própria pergunta.