Fiz um sistema de Login (Básico)
em MVC com banco de dados Mysql
estou querendo saber se é desse jeito mesmo a estrutura.
segue o link para download…
esta o banco e o projeto.
Fiz um sistema de Login (Básico)
em MVC com banco de dados Mysql
estou querendo saber se é desse jeito mesmo a estrutura.
segue o link para download…
esta o banco e o projeto.
Kra, posta o seu código ai com tags [code] q fica mais fácil.
okey.
Package Acessa Dados
[code]package AcessoADados;
import Dominio.Entidade;
import Dominio.Ususario;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
*
@author 087031ci
*/
public class RepositorioUsuario implements IRepositorio {
public Ususario RetornaUsuarioPeloLogin(String Login) throws SQLException {
conecçao conectar = new conecçao();
conectar.conecta();
ResultSet dados = conectar.RetornaDados("SELECT * FROM LOGIN WHERE USU_LOGIN = '" + Login + "'");
Ususario usuario = new Ususario();
if (dados.next()) {
usuario.setW_Usu(dados.getString("USU_LOGIN"));
usuario.setW_Senha(dados.getString("SEN_LOGIN"));
}
return usuario;
}
public void Iserir(Entidade entidade) {
throw new UnsupportedOperationException(“Not supported yet.”);
}
public void Atualiza(Entidade entidade) {
throw new UnsupportedOperationException(“Not supported yet.”);
}
public void Remover(Entidade entidade) {
throw new UnsupportedOperationException(“Not supported yet.”);
}
public Entidade Pesquisar(int id) {
throw new UnsupportedOperationException(“Not supported yet.”);
}
}
[/code]
package AcessoADados;
import Dominio.Entidade;
/**
*
* @author Pedro Rafante
*/
public interface IRepositorio {
public void Iserir(Entidade entidade);
public void Atualiza(Entidade entidade);
public void Remover(Entidade entidade);
public Entidade Pesquisar(int id);
}
package AcessoADados;
import java.beans.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class conecçao extends JFrame {
public Connection con = null;
public Statement st = null;
public Boolean teste;
public String WVG_Nome, WVG_idade, WVG_tel;
public conecçao() {
}
public void conecta() {
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/java", "root", "");
} catch (Exception e) {
System.out.println("Não foi possível conectar com o banco - " + e.getMessage());
}
}
public ResultSet RetornaDados(String Sql) throws SQLException {
ResultSet rs = null;
rs = con.createStatement().executeQuery(Sql);
return rs;
}
public void RealizaSql(String Sql) throws SQLException {
con.createStatement().executeUpdate(Sql);
}
}
PACKAGE DOMINIO
package Dominio;
/**
*
* @author Pedro Rafante
*/
public class Ususario extends Entidade {
private String W_Usu;
private String W_Senha;
private Boolean senha;
public String getW_Usu() {
return W_Usu;
}
public void setW_Usu(String W_Usu) {
this.W_Usu = W_Usu;
}
public String getW_Senha() {
return W_Senha;
}
public void setW_Senha(String W_Senha) {
this.W_Senha = W_Senha;
}
public Boolean SenhaCorreta(String Senha){
senha = false;
if(Senha.equals(W_Senha)){
senha = true;
}
return senha;
}
}
[code]
package Dominio;
/**
*
@author Pedro Rafante
*/
public class Entidade {
private int Id;
public int getId() {
return Id;
}
public void setId(int Id) {
this.Id = Id;
}
}[/code]
PACKAGE INTERFACE
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/*
* JLogin.java
*
* Created on 28/10/2010, 21:56:58
*/
package Interface;
import AcessoADados.RepositorioUsuario;
import Dominio.Ususario;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
/**
*
* @author Pedro Rafante
*/
public class JLogin extends javax.swing.JFrame {
RepositorioUsuario repo = new RepositorioUsuario();
Ususario usuario = new Ususario();
/** Creates new form JLogin */
public JLogin() {
initComponents();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jLabel2 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
jLabel1 = new javax.swing.JLabel();
jPasswordField1 = new javax.swing.JPasswordField();
jButton1 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jLabel2.setText("Login");
jLabel2.setName("jLabel2"); // NOI18N
jTextField1.setName("jTextField1"); // NOI18N
jLabel3.setText("Senha");
jLabel3.setName("jLabel3"); // NOI18N
jLabel1.setText("Sistema de Login");
jLabel1.setName("jLabel1"); // NOI18N
jPasswordField1.setName("jPasswordField1"); // NOI18N
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(76, 76, 76)
.addComponent(jLabel1))
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel2)
.addComponent(jLabel3))
.addGap(31, 31, 31)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 191, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jPasswordField1, javax.swing.GroupLayout.DEFAULT_SIZE, 191, Short.MAX_VALUE))))
.addContainerGap())
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(jPasswordField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap())
);
jButton1.setText("Entrar");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(74, 74, 74)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGap(74, 74, 74))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(184, Short.MAX_VALUE)
.addComponent(jButton1)
.addGap(183, 183, 183))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(74, 74, 74)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButton1)
.addGap(106, 106, 106))
);
pack();
}// </editor-fold>
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
try {
usuario = repo.RetornaUsuarioPeloLogin(jTextField1.getText());
if(usuario == null || !usuario.SenhaCorreta(jPasswordField1.getText())){
JOptionPane.showMessageDialog(null, "Usuario ou senha incorretos");
}
else
{
JOptionPane.showMessageDialog(null, "Dados corretos!!");
}
} catch (SQLException ex) {
Logger.getLogger(JLogin.class.getName()).log(Level.SEVERE, null, ex);
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new JLogin().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JPanel jPanel1;
private javax.swing.JPasswordField jPasswordField1;
private javax.swing.JTextField jTextField1;
// End of variables declaration
}
PACKAGE DO MAIN
package trabalho_2410;
import Interface.JLogin;
/**
*
* @author Pedro Rafante
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
JLogin LOGIN = new JLogin();
LOGIN.setVisible(true);
}
}
Ok, eu achei o modelo e a view mas quem deveria ser o seu controller? E pq a classe coneccao extende de JFrame?
o extends do coneccao é lixo de codigo esqueci de tirar…
o controller fica na interface.
Tire o controller da interface. Em MVC view e controller são camadas separadas. Eu gosto de usar Actions da swing p/ implementar controllers.
" try {
usuario = repo.RetornaUsuarioPeloLogin(jTextField1.getText());
if(usuario == null || !usuario.SenhaCorreta(jPasswordField1.getText())){
JOptionPane.showMessageDialog(null, "Usuario ou senha incorretos");
}
else
{
JOptionPane.showMessageDialog(null, "Dados corretos!!");
}
} catch (SQLException ex) {
Logger.getLogger(JLogin.class.getName()).log(Level.SEVERE, null, ex);
} "
isso seria o Controller? o que esta no action do Button
Isso, mas vc ñ o está separando da camada de view.
public class LoginAction extends AbstractAction {
private JComponent view;
public LoginAction(JComponent view) {
this.view = view;
put("name", "Login");
}
@Override
public void actionPerformed(ActionEvent e) {
// aqui vc coloca a lógica do seu controller.
}
}
PS.: lembre-se de sempre usar tag [code] p/ postar código, isso deixa as coisas mais fáceis p/ quem vai ajuda-lo.
aah entendi.
Obrigadao pela ajuda…
ps: foi malz, sou novo no forúm;