Mvc e dao java

Disponível somente no TrabalhosFeitos
  • Páginas : 11 (2618 palavras )
  • Download(s) : 0
  • Publicado : 16 de março de 2013
Ler documento completo
Amostra do texto
2. Padrão MVC
O objetivo do Model View Controller (MVC) é separar os dados ou lógicas de negócios (Model) da interface do usuário (View) e do fluxo da aplicação (Control). Utilizando este padrão seria possível reutilizar boa parte da aplicação para a comunicação com outras interfaces e também torna mais fácil a manutenção na aplicação.
Imagine a situação em que você cria uma aplicação em Swingsem a utilização do padrão MVC. Na classe que contém a interface você faz as chamadas a banco através de select, insert e demais métodos que se comunicam com o banco de dados. Ok, sua aplicação vai funcionar perfeitamente como você queria.
Agora imagine que você precisa que essa aplicação seja também criada para a Web. Bom, você terá muito trabalho, isto por que está tudo misturado na classe deinterface. Na mesma classe você fez as chamadas a banco de dados e as regras de negócio. Agora terá que refazer tudo isso para criar a aplicação no formato Web.
Caso no primeiro projeto você tivesse usado o padrão MVC, não precisaria refazer tudo, apenas criaria uma nova interface no padrão Web e a comunicaria com o seu controller. É claro que no controller teria que mudar algumas coisas, por queo padrão Web trabalha com requisições e tudo mais, mas teria bem menos trabalho. Esse trabalho seria bem menor também no caso de você simplesmente querer atualizar a sua interface em Swing para um modelo diferente. Mudaria apenas a interface, os métodos principais da aplicação não precisariam ser modificados.
Na aplicação que criaremos a seguir, o modelo MVC se aplica e pode ser visto mais oumenos assim:
* Model: contém as classes Contato, ContatoDao, GenericDao e ConnectionDataBase
* Controller: contém a classe ContatoController
* View: contém a classe ExemploDeskView
O processo funciona assim:
1. O usuário clica em um botão na interface (View). Esse botão possui um evento que faz uma chamada ao Controller
2. O Controller atende essa chamada e então se comunica como Model
3. O Model executa, por exemplo, um acesso ao banco de dados, como uma consulta, e então retorna uma resposta ao Controller que retorna uma resposta a View
É possível na View o acesso ao Model, como instanciar uma classe de entidade para ter acesso aos seus métodos, mas nunca as classes que possuem relacionamentos com o banco de dados. No exemplo foram passados para o Controllerparâmetros tipo String, mas poderiam ser os objetos do tipo Contato (Entidade Contato).

3. Tabela contatos
Vamos criar a tabela Contatos, para isso, rode o script da listagem 1. Observe que estamos utilizando auto incremento para o id da tabela, assim quem se preocupa com a criação dos id’s é o gerenciador do banco de dados.
Listagem 1. Contatos.sql
CREATE TABLE IF NOT EXISTS `contatos` ( `ID` BIGINT( 20 ) NOT NULL AUTO_INCREMENT , `NOME` VARCHAR( 50 ) NOT NULL UNIQUE , `APELIDO` VARCHAR( 15 ) NOT NULL , `DATA_NASCIMENTO` DATE NOT NULL , PRIMARY KEY (  `ID` ) ) |
4. Classe de conexão JDBC
Vamos criar a classe de conexão JDBC, conforme listagem 2.
Listagem 2. ClasseConnectionDataBase
01 | package dao; |
02 |   |

03 | import java.sql.Connection; |
04 | import java.sql.DriverManager; |

05 | import java.sql.SQLException; |
06 |   |

07 | public class ConnectionDataBase { |
08 |   |

09 |     private static final String URL_MYSQL = "jdbc:mysql://localhost/agenda"; |
10 |     private static final String DRIVER_CLASS = "com.mysql.jdbc.Driver"; |11 |     private static final String USER = "root"; |
12 |     private static final String PASS = ""; |

13 |   |
14 |     public static Connection getConnection() { |

15 |         System.out.println("Conectando ao Banco de Dados"); |
16 |         try { |

17 |             Class.forName(DRIVER_CLASS); |
18 |             return DriverManager.getConnection(URL_MYSQL, USER,...
tracking img