Escolar Documentos
Profissional Documentos
Cultura Documentos
So Paulo 07 de outubro de 2010 ndice 1. 2. 2.1 2.2 3. 3.1 3.2 4. 4.1 4.2 5. 5.1 5.2 6. 7. Introduo..............................................................................................................04 Java Desktop MVC Cadastrar(insert).......................................................................05 Visual...............................................................................................................05 Cdigo..............................................................................................................07 Java Desktop MVC Alterar(update).........................................................................13 Visual...............................................................................................................13 Cdigo..............................................................................................................15 Java Desktop MVC Excluir(delete)...........................................................................22 Visual...............................................................................................................22 Cdigo..............................................................................................................24 Java Desktop MVC Restaurar(select).......................................................................28 Visual...............................................................................................................28 Cdigo..............................................................................................................29 Concluso...............................................................................................................33 Bibliografia.............................................................................................................34
Introduo Histria O MVC foi descrito originalmente em 1979 por Trygve Reenskaug, ento trabalhando no Smalltalk na Xerox PARC. A implementao original descrita em profundidade no artigo "Applications Programming in Smalltalk-80: How to use ModelViewController". Componentes O modelo (model) usado para definir e gerenciar o domnio da informao e notificar observadores sobre mudanas nos dados. Ele uma representao detalhada da informao que a aplicao opera. A lgica de negcio adiciona valor semntico aos dados, e quando h mudana de estado o modelo notifica seus observadores. Por exemplo, aluno, professor e turma fazem parte do domnio de um sistema acadmico. Operaes como calcular a mdia final do aluno ou o ndice de faltas da turma fazem parte da lgica de domnio. A forma como o dado armazenado ou acessado no de interesse do MVC, assume-se que de responsabilidade do modelo. A viso (view) apresenta o modelo num formato adequado ao utilizador, na sada de dados, e diferentes vises podem existir para um mesmo modelo, para diferentes propsitos. O controlador (controller) recebe a entrada de dados e inicia a resposta ao utilizador ao invocar objetos do modelo, e por fim uma viso baseada na entrada. Ele tambm responsvel pela validao e filtragem da entrada de dados. Um caso prtico uma aplicao web em que a viso um documento HTML (ou derivado) gerado pela aplicao. O controlador recebe uma entrada GET ou POST aps um estmulo do utilizador e decide como process-la, invocando objetos do domnio para tratar a lgica de negcio, e or fim invocando uma viso para apresentar a sada.
2.
2.1
2.2 /**
Cdigo
private JLabel rotulo1,rotulo2,rotulo3,rotulo4,rotulo5,rotulo6; public static JTextField nome,ra,tel,mail,senha; public static JButton botao1, botao2;
public Insert(){ // determinado o texto da barra azul o nome que vai dar a aplicao que vai aparecer na tela super("JAVA MVC INSERT");
//Container atribui o objeto container a c(vai a nossa tela) Container c = getContentPane(); c.setBackground(Color.green); setLayout(null);
//Instanciando o rotulo1 rotulo1 = new JLabel (" Nome : "); rotulo2 = new JLabel (" RA rotulo3 = new JLabel (" Tel : "); :");
rotulo4 = new JLabel (" E-mail:"); rotulo5 = new JLabel (" Senha :"); rotulo6 = new JLabel ("CADASTRO DE ALUNO"); botao1 = new JButton("Gravar"); botao2 = new JButton("Sair"); nome = new JTextField(100); ra = new JTextField(100); tel = new JTextField(100); mail = new JTextField(100); senha = new JTextField(100);
rotulo1.setBounds(10,30,80,20); rotulo2.setBounds(10,60,80,20);
c.add(rotulo1); c.add(rotulo2); c.add(rotulo3); c.add(rotulo4); c.add(rotulo5); c.add(rotulo6); c.add(nome); c.add(ra); c.add(tel); c.add(mail); c.add(senha); c.add(botao1);
botao2.setToolTipText("Boto que finaliza a janela"); c.add(botao2); botao2.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e) { int opcao; opcao=JOptionPane.showConfirmDialog(null, "Deseja mesmo fechar a janela?", "Fechar",JOptionPane.YES_NO_OPTION);
if (opcao==JOptionPane.YES_OPTION)
System.exit(0); }});
//Para a aplicao quando fechamos o formulrio app.addWindowListener( new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } } ); }
/*------------------------------CONTROL---------------------------------------*/
if (ra.getText().length() != 0){
if (mail.getText().length() != 0){ insere.setMail(mail.getText()); } else{ JOptionPane.showMessageDialog(null, "Digite o e-mail!"); return; } if(senha.getText().length() !=0){ insere.setSenha(senha.getText()); } else{ JOptionPane.showMessageDialog(null,"Digite a sua senha!!");
//limpa os campos textos para uma nova insero nome.setText(null); ra.setText(null); tel.setText(null); mail.setText(null); senha.setText(null); nome.requestFocus();
} } }
// Classe de logica para as Insere public class Insere { String nome; String ra; String tel; String mail; String senha;
try { //Instanciando o objeto de conexao Connection conn = DriverManager.getConnection("jdbc:odbc:aluno", "", ""); //Instanciando o objeto comando SQL Statement s = conn.createStatement(); //Insere um novo valor na tabela_cadastro s.execute("INSERT INTO aluno(nome,ra,tel,mail,senha) VALUES('"+nome+"','"+ra+"','"+tel+"','"+mail+"','"+senha+"')"); s.execute("SELECT * FROM aluno"); mensagem = "Cadastro realizado com sucesso!!"; } catch(Exception e){ mensagem ="Erro ao gravar. Envie esta mensagem ao suporte: "+e.toString(); } return mensagem; } }
3. 3.1
3.2 /**
Cdigo
private JLabel rotulo1,rotulo2,rotulo3,rotulo4,rotulo5,rotulo6,rotulo7,rotulo8; public static JTextField nome,nome_alterado,ra,tel,mail,senha,cod; public static JButton botao1, botao2,botao3;
public Alterar(){ // determinado o texto da barra azul o nome que vai dar a aplicao que vai aparecer na tela super("JAVA MVC UPDATE");
//Container atribui o objeto container a c(vai a nossa tela) Container c = getContentPane(); c.setBackground(Color.green); setLayout(null);
//Instanciando o rotulo1 rotulo1 = new JLabel (" Nome : "); rotulo2 = new JLabel (" Cdigo : "); rotulo3 = new JLabel (" Nome : "); rotulo4 = new JLabel (" RA : ");
rotulo5 = new JLabel (" Telefone: "); rotulo6 = new JLabel (" E-mail : "); rotulo7 = new JLabel (" Senha : "); rotulo8 = new JLabel ("ATUALIZAO DE CADASTRO");
nome = new JTextField(100); cod = new JTextField(100); nome_alterado = new JTextField(100); ra = new JTextField(100); tel = new JTextField(100); mail = new JTextField(100); senha = new JTextField(100); botao1 = new JButton("Buscar"); botao2 = new JButton("Sair"); botao3 = new JButton("Salvar");
nome.setBounds(70,30,200,20); cod.setBounds(70,90,30,20); nome_alterado.setBounds(70,120,200,20); ra.setBounds(70,150,200,20); tel.setBounds(70,180,200,20); mail.setBounds(70,210,200,20); senha.setBounds(70,240,200,20); botao1.setBounds(190,55,80,20); botao2.setBounds(190,270,80,20); botao3.setBounds(110,270,80,20);
c.add(rotulo1);
c.add(rotulo2); c.add(rotulo3); c.add(rotulo4); c.add(rotulo5); c.add(rotulo6); c.add(rotulo7); c.add(rotulo8); c.add(nome); c.add(nome_alterado); c.add(ra); c.add(tel); c.add(mail); c.add(senha); c.add(cod); c.add(botao1); c.add(botao3);
botao2.setToolTipText("Boto que finaliza a janela"); c.add(botao2); botao2.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e) { int opcao; opcao=JOptionPane.showConfirmDialog(null, "Deseja mesmo fechar a janela?", "Fechar",JOptionPane.YES_NO_OPTION);
if (opcao==JOptionPane.YES_OPTION)
System.exit(0); }});
//Para a aplicao quando fechamos o formulrio app.addWindowListener( new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); }
} ); }
/*-------------------CONTROL------------------*/ private class ButtonHandler implements ActionListener{ public void actionPerformed(ActionEvent e){
if (nome.getText().length() != 0){ editar.setNome(nome.getText()); } else{ JOptionPane.showMessageDialog(null, "Digite o nome!"); return; } editar.gravar(); } } private class ButtonHandler2 implements ActionListener{ public void actionPerformed(ActionEvent i){
editar.setNomeAlterado(nome_alterado.getText()); editar.setRa(ra.getText());
JOptionPane.showMessageDialog(null,editar.atualizar());
//limpa os campos de texto para nova alterao mail.setText(null); ra.setText(null); senha.setText(null); nome_alterado.setText(null); cod.setText(null); nome.setText(null); tel.setText(null); nome.requestFocus(); } } }
static String nome; static String nome_alterado; static String ra; static String tel; static String mail; static String senha; static String cod;
public void setNome(String vnome){ nome = vnome; } public void setNomeAlterado(String vnome_alterado){ nome_alterado = vnome_alterado; } public void setRa(String vra){ ra = vra; } public void setTel(String vtel){ tel = vtel; } public void setMail(String vmail){ mail = vmail; }
public void setSenha(String vsenha){ senha = vsenha; } public void setCod(String vcod){ cod = vcod; }
try { //Instanciando o objeto de conexao Connection conn = DriverManager.getConnection("jdbc:odbc:aluno", "", ""); //Instanciando o objeto comando SQL Statement s = conn.createStatement();
while (rs.next()){
} catch(Exception e){ mensagem ="Erro ao comunicar com banco de dados. Envie esta mensagem ao suporte: "+e.toString(); }
return mensagem; }
String mensagem="";
Statement st = con.createStatement();
String sql = "UPDATE aluno SET nome="+"'"+nome_alterado+"',ra=" +"'"+ra+"',tel="+"'"+tel+"',mail="+"'"+mail+"',senha="+"'"+senha+"' WHERE codigo="+""+cod+""; st.execute(sql); System.out.println(sql); mensagem = "Registro alterado com sucesso!!"; } catch(Exception e){ mensagem ="Erro ao alterar. Envie esta mensagem ao suporte: "; } return mensagem; } }
4.
4.1
Visual
4.2
Cdigo
/*---------------------VIEW------------------*/ /** * @(#)Delete.java * * Delete application * * @author * @version 1.00 2010/9/9 */ import javax.swing.*; import java.awt.*; import java.awt.event.*;
//JFrame = moldura da tela public class Delete extends JFrame { private JLabel rotulo1,rotulo2; public static JTextField nome; public static JButton botao1, botao2;
public Delete(){ // determinado o texto da barra azul o nome que vai dar a aplicao que vai aparecer na tela super("JAVA MVC DELETE"); Container c = getContentPane(); c.setBackground(Color.red);
setLayout(null);
//Instanciando o rotulo1 rotulo1 = new JLabel ("EXCLUIR CADASTRO"); rotulo2 = new JLabel (" Nome: "); nome = new JTextField(100); botao1 = new JButton("Buscar"); botao2 = new JButton("Sair"); rotulo1.setBounds(75,05,200,20); rotulo2.setBounds(10,30,80,20); nome.setBounds(70,30,200,20); botao1.setBounds(90,60,80,20); botao2.setBounds(190,60,80,20); rotulo1.setForeground(Color.white); rotulo1.setFont(new Font("Arial",Font.BOLD,18));
public void actionPerformed(ActionEvent e) { int opcao; opcao=JOptionPane.showConfirmDialog(null, "Deseja mesmo fechar a janela?","Fechar",JOptionPane.YES_NO_OPTION);
if (opcao==JOptionPane.YES_OPTION)
System.exit(0); }});
/*---------------------CONTROL------------------*/ private class ButtonHandler implements ActionListener{ public void actionPerformed(ActionEvent e){
if (nome.getText().length() != 0){ busca.setNome(nome.getText()); } else{ JOptionPane.showMessageDialog(null, "Digite o nome!"); return; } JOptionPane.showMessageDialog(null,busca.gravar()); nome.setText(null); nome.requestFocus(); } } }
try { //Instanciando o objeto de conexao Connection conn = DriverManager.getConnection("jdbc:odbc:aluno", "", ""); //Instanciando o objeto comando SQL Statement s = conn.createStatement();
while (rs.next()){
opcao = JOptionPane.showConfirmDialog(null,"Deseja excluir este registro?"+"\nNome: "+rs.getString("nome")+" "+"\nCdigo: "+rs.getString("codigo")+" "+"\nRA: " +rs.getString("ra")+" "+"\nTelefone: " +rs.getString("tel")+" "+"\nE-mail: "+rs.getString("mail")+" "+"\nSenha: "+rs.getString("senha")+" ");
return mensagem = "Registro deletado com sucesso!"; } } if(cont==0){ mensagem = "Registro no encontrado!!"; } } catch(Exception e){ mensagem = "Erro ao deletar. Envie esta mensagem ao suporte: "; } return mensagem;
} }
5.
5.1
Visual
5.2
Cdigo /*-----------------------------VIEW----------------------------------*/
/** * @(#)Login.java * * Login application * * @author * @version 1.00 2010/8/12 */ import java.sql.*; import javax.swing.*; import java.awt.*; import java.awt.event.*;
private JLabel rotulo1,rotulo2,rotulo3; public static JTextField nome; public static JPasswordField senha; public static JButton botao1, botao2;
public Login(){ // determinado o texto da barra azul o nome que vai dar a aplicao que vai aparecer na tela super("JAVA MVC SELECT");
//Container atribui o objeto container a c(vai a nossa tela) Container c = getContentPane(); c.setBackground(Color.green); setLayout(null);
//Instanciando o rotulo1 rotulo1 = new JLabel (" Nome: "); rotulo2 = new JLabel (" Senha: "); rotulo3 = new JLabel ("VALIDAO DE USURIO"); nome = new JTextField(100); senha = new JPasswordField(100); botao1 = new JButton("Entrar"); botao2 = new JButton("Sair");
rotulo1.setBounds(10,30,80,20); rotulo2.setBounds(10,60,80,20);
botao2.setToolTipText("Boto que finaliza a janela"); c.add(botao2); botao2.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e) { int opcao; opcao=JOptionPane.showConfirmDialog(null,"Deseja mesmo fechar a janela?","Fechar",JOptionPane.YES_NO_OPTION);
if (opcao==JOptionPane.YES_OPTION)
System.exit(0); }});
/*----------------------------CONTROL-------------------------------------*/ private class ButtonHandler implements ActionListener{ public void actionPerformed(ActionEvent e){
if (nome.getText().length() != 0){ acesso.setNome(nome.getText()); } else{ JOptionPane.showMessageDialog(null, "Digite o nome!"); return; } if (senha.getText().length() != 0){ acesso.setSenha(senha.getText()); } else{ JOptionPane.showMessageDialog(null, "Digite Senha!"); return; } JOptionPane.showMessageDialog(null, acesso.validar()); nome.setText(null); senha.setText(null); nome.requestFocus(); } } }
try{
Connection con = DriverManager.getConnection("jdbc:odbc:aluno","",""); Statement s = con.createStatement(); ResultSet rs = s.executeQuery("SELECT * FROM aluno WHERE nome ='"+nome+"'AND senha = '"+senha+"'"); int cont = 0; while (rs.next()){
if(cont==0){ return mensagem = "Usurio e Senha Invlidos"; } } catch(Exception e) { mensagem ="Erro ao conectar. Envie esta mensagem ao suporte: "+e.toString(); } return mensagem; } }
6.
Concluso
Com o aumento da complexidade das aplicaes desenvolvidas, torna-se relevante a separao entre os dados e a apresentao das aplicaes. Desta forma, alteraes feitas no layout no afetam a manipulao de dados, e estes podero ser reorganizados sem alterar o layout. A concluso do grupo, determinada focando nas vantagens de apresentao e manutenes facilitadas de um projeto, por meio da Metodologia MVC, que nos direcionou na codificao e lgica do programa, refletindo em um projeto claro para a finalidade definida.