E ae davidtiagoconceicao! Valeu por me responder!.
A idéia do MVC então é separa tudo?
Seu projeto me esclareceu muitO!
Olhei seu projeto, vi como funcionava na pratica…
Dai montei o meu!
Mas me veio uma dúvida.
Posso fazer a leitura do resultset na View ? (que nem no método visualizar(), da classe View)
O que não poder ter na view é consultas com o banco de dados, nao é ?
Model
import java.sql.*;
public class Modelo{
Connection cnn_used;
public Modelo(Connection cnn_used){
this.cnn_used = cnn_used;
}
public void grava(Pessoa pessoa){
try{
Statement s = cnn_used.createStatement();
String ins_SQL = "INSERT INTO PESSOAS(NOME,TELEFONE)";
ins_SQL += "VALUES('" + pessoa.getNome() + "','" + pessoa.getTelefone() + "')";
s.executeUpdate(ins_SQL);
}catch(Exception e){System.out.println(e.getMessage());}
}
public void deleta(Pessoa pessoa){
try{
Statement s = cnn_used.createStatement();
String del_SQL = "DELETE FROM PESSOAS WHERE NOME = '" + pessoa.getNome() + "'";
s.executeUpdate(del_SQL);
}catch(Exception e){System.out.println(e.getMessage());}
}
public void altera(Pessoa pessoa){
try{
Statement s = cnn_used.createStatement();
String upd_SQL = "UPDATE PESSOAS SET TELEFONE = '" + pessoa.getTelefone() + "' WHERE NOME = '" + pessoa.getNome() + "'";
s.executeUpdate(upd_SQL);
}catch(Exception e){System.out.println(e.getMessage());}
}
public ResultSet busca(){
try{
Statement s = cnn_used.createStatement();
String sel_SQL = "SELECT * FROM PESSOAS";
return s.executeQuery(sel_SQL);
}catch(Exception e){System.out.println(e.getMessage());return null;}
}
public ResultSet busca(String Nome){
try{
Statement s = cnn_used.createStatement();
String sel_SQL = "SELECT * FROM PESSOAS WHERE NOME = '" + Nome + "'";
return s.executeQuery(sel_SQL);
}catch(Exception e){System.out.println(e.getMessage()); return null ;}
}
}
View
[code]import java.sql.*;
public class MainView{
Modelo model;
Connection cnn;
Controlador control;
int opc;
String Nome;
String Telefone;
ResultSet rs;
public MainView(String bco){
try{
Class.forName(“com.mysql.jdbc.Driver”);
cnn = DriverManager.getConnection(bco);
model = new Modelo(cnn);
control = new Controlador(model);
while(true){
System.out.println(“1.Cadastro”);
System.out.println(“2.Edicao”);
System.out.println(“3.Exclusao”);
System.out.println(“4.Visualizar”);
System.out.println(“Escolha sua opcao:”);
opc = KeyBoard.KeyInt();
switch(opc){
case 1:{
inclusao();
break;}
case 2:{
edicao();
break;}
case 3:{
exclusao();
break;}
case 4:{
visualizar();
break;}
}
}
}catch(Exception e){System.out.println(e.getMessage());}
}
public static void main(String[] args){
new MainView("jdbc:mysql://localhost/teste?user=root&password=admin");
}
public void inclusao(){
System.out.println("\nINCLUSAO");
System.out.println("Digite o nome:");Nome = KeyBoard.KeyString();
System.out.println("Digite o telefone:");Telefone = KeyBoard.KeyString();
control.inserir(Nome,Telefone);
System.out.println("\n\n");
}
public void edicao(){
System.out.println("\nEDICAO");
System.out.println("Digite o nome:");Nome = KeyBoard.KeyString();
System.out.println("Digite o telefone:");Telefone = KeyBoard.KeyString();
control.editar(Nome,Telefone);
System.out.println("\n\n");
}
public void exclusao(){
System.out.println("\nEXCLUSAO");
System.out.println("Digite o nome:");Nome = KeyBoard.KeyString();
control.excluir(Nome);
System.out.println("\n\n");
}
public void visualizar(){
System.out.println("\nVISUALIZANDO");
rs = control.busca();
try{
while(rs.next()){
System.out.print("Nome: " + rs.getString("NOME"));
System.out.println(" Telefone: " + rs.getString("TELEFONE"));
}
System.out.println("\n\n");
}catch(Exception e){System.out.println(e.getMessage());}
}
}
[/code]
Controller
import java.sql.*;
public class Controlador{
Modelo model;
public Controlador(Modelo model){
this.model = model;
}
public void inserir(String nome, String telefone){
Pessoa pessoa = new Pessoa(nome,telefone);
model.grava(pessoa);
}
public void editar(String nome, String telefone){
Pessoa pessoa = new Pessoa(nome,telefone);
model.altera(pessoa);
}
public void excluir(String nome){
Pessoa pessoa = new Pessoa(nome);
model.deleta(pessoa);
}
public ResultSet busca(){
return model.busca();
}
public ResultSet busca(String nome){
return model.busca(nome);
}
}
Pessoa
[code]public class Pessoa{
private String nome;
private String telefone;
public Pessoa(String nome, String telefone){
this.nome = nome;
this.telefone = telefone;
}
public Pessoa(String nome){
this.nome = nome;
}
public String getNome(){
return this.nome;
}
public String getTelefone(){
return this.telefone;
}
public void setNome(String nome){
this.nome = nome;
}
public void SetTelefone(String telefone){
this.telefone = telefone;
}
}[/code]
O fluxo de dados ficou assim
view -> controller -> model -> controller -> view
Esta certo ?
Abraços!