Estou começando a dominar o básico agora e gostaria de exclarecer algumas dúvidas a respeito de banco de dados.
Tenho uma classe onde tem um main que será a “janela” principal do meu java, o problema é o seguinte:
Eu criei um método para buscar dados para mim no DB. Minha dúvida é: Como devo proceder para o caminho até os dados? E a volta?
Por exemplo, eu devo chamar uma conn nesse método, criar um statement e ali gravar uma collection e retornar ela?
Ou eu devo enviar esses parametros para outra classe me executar a busca e arrumar os dados? Podem me dar exemplos teóricos? Tipo, uma classe para conexões, uma para busca e outra para fazer a collection, pois estou tendo dificuldade de imaginar o caminho até o DB.
Outra coisa, tem como eu passar dados para um método e o mesmo me retornar alguma resposta? Tipo, verificaLogin(username,senha) e ele me dar um return true ou false?
Se puderem me ajudar, teoricamente só, sem exemplos de códigos.
Hum, um conselho de quem tabém está começando: não tente pensar em tud o de uma vez.
Comecemos pelo princípio da divisão de N camadas.
Camada de visualização (View): contém a interface com a qual o usuário interage.
Camada de controle (Controler): recebe requisições da view (ex.: verificaLogin()), passa essa chamada para a camada de dados e retorna a resposta para a view. Cuida das regras do negócio.
Camada de dados (Model): realiza as operações relacionadas aos dados, como bancos de dados não contém regras de negócio.
Esse trio é conhecido como o modelo MVC.
Um exemplo simples:
1. view: usuário preenche usuário e senha e clica no botão 'logar'.
2. controler:
- recebe o valor do usuário e da senha.
- verifica se um deles não está em branco.
* se não estiver, não precisa checar mais nada, já retorna uma mensagem de erro para a view, avisando o erro.
- chama o método getByUserAndPass( String user, String pwd ) localizado na camada Model, que retorna um objeto User se o usuário existir ou null caso contrário.
3. model: conecta no banco, faz a query, cria e popula um objeto User
4. controller:
- se o método retornar null, envia a mensagem de erro para a view
- se retornar um objeto Usuário, manda a view prosseguir.
5. view: fecha a tela de login e abre a principal.
Simples não? Uma viagem de ida e volta.
Para saber muito muito mais sobre mvc, leia o tópico “Então você quer aprender MVC” hehe
Sabe LIPE, estive pensando…
antes de me aventurar em MVC, ainda vou ficar um tempo estudando uma classe principal, acessando a outra, procurando nos dados e retornando… hehehehehe quando eu pegar o jeito nisso pulo para web e MVC…
mas mesmo assim valeu… era isso mesmo que eu estava procurando…
Hum, na minha cabeça aventura mesmo é desenvolver aplicações com 2 camadas hehe
Apesar de ser difícil assimilar estes conceitos no princípio, teste fazer uma aplicação bem simples com pelo menos 3 camadas, verá que não é difícil. Boa parte do “resto” (como pegar uma conexão, como criar statements, como mostrar a exceção pro usuário etc) surge naturalmente a partir de refatoração do código e bom senso