Padrão MVC e Acesso a Banco de Dados em Java
Classificado em Computação
Escrito em em português com um tamanho de 2,81 KB
Modelo (Model)
O Modelo é responsável por modelar os dados e o comportamento por trás dos processos de negócio. Na implementação do modelo em Java, neste pacote estarão as classes responsáveis pelo acesso ao banco de dados, seguindo o padrão de projeto Data Access Object (DAO).
Visualização (View)
A Visualização é responsável pela interface com o usuário. É usada para receber a entrada dos dados e apresentar os resultados.
Controle (Controller)
O Controle faz a intermediação entre o Modelo e a Visualização, controlando e mapeando as ações.
Classes e Interfaces JDBC
- Connection: Classe responsável por manter uma conexão aberta com o banco.
Exemplo:
conn.prepareStatement("DELETE FROM DEPT WHERE DEPTNO = ?");
- Statement: Gerencia e executa instruções SQL. Não aceita a passagem de parâmetros.
import java.sql.Statement;
stmt.executeUpdate("DELETE FROM DEPT WHERE DEPTNO = 10");
stmt.execute ("SELECT * FROM DEPT");
- PreparedStatement: Gerencia e executa instruções SQL, permitindo também a passagem de parâmetros em uma instrução.
import java.sql.PreparedStatement;
pstmt.setString(1, "MANAGEMENT");
pstmt.setInt(2, 10);
pstmt.execute();
- ResultSet: Responsável por receber os dados obtidos em uma pesquisa ao banco.
import java.sql.ResultSet;
while (rs.next( )) {
rs.getString("DNAME");
}
Removendo as Ações dos Formulários (Form JFrame)
Como o controller é responsável por todas as ações que são feitas com os dados de entrada e saída, os eventos disparados nos formulários devem ser tratados em métodos das classes do pacote controller e não mais nos formulários do pacote view.
Atributo e Construtor do Controller
Exemplo:
public class ControllerPessoa {
private TelaPessoa tela;
public ControllerPessoa(TelaPessoa tela) {
this.tela = tela;
}
}
Métodos para Ações no Banco de Dados
Os métodos responsáveis por executar ações no Banco de Dados, que devem chamar os métodos da classe DAO correspondente, também devem ser implementados na classe controller.
Exemplo:
private void inserirDados() {
Pessoa pessoa1 = pegarDados();
if (pessoa1 != null) {
PessoaDAO pessoaDAO1 = new PessoaDAO();
if (pessoaDAO1.inserirPessoa(pessoa1)) {
JOptionPane.showMessageDialog(null, "Inserido com sucesso!");
} else {
JOptionPane.showMessageDialog(null, "Registro não foi inserido!", "ERRO", 0);
}
listarDados();
}
}