( lembrando que não vamos utilizar nenhum tipo de criptografia para senhas )
O que vamos precisar ?
1º - Java Eclipse ou NetBeans ou até mesmo outra IDE de sua preferencia.
2º - MySql instalado
3º Classe de conexão com o banco de dados
Bom tendo os requisitos acima funcionando corretamente vamos ao que interessa.
Primeiro vamos criar uma tabela onde iremos salvar os dados de login
CREATE TABLE login (
id int not null auto_increment,
usuario varchar(20) not null,
senha varchar(8) not null,
primary key (id))
Pronto agora vamos inserir algum dado na tabela para que possamos testar posteriormente nosso sistema de login.
INSERT INTO login VALUES (null, 'admin', 'admin')
Tendo feito isso vamos criar nossa janela no java.
public class credencial extends JFrame {
private JPanel contentPane;
private JTextField txtusuario;
private JPasswordField passsenha;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
credencial frame = new credencial();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
conexao banco = new conexao(); // Instanciando nossa classe responsável pela conexão com o banco de dados
public credencial() {
setLocationRelativeTo(null);
setResizable(false);
setTitle("Identificação");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 426, 212);
contentPane = new JPanel();
contentPane.setBackground(SystemColor.window);
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JLabel lblIdentificao = new JLabel("Identificação");
lblIdentificao.setBounds(144, 0, 139, 39);
contentPane.add(lblIdentificao);
JLabel lblUsuario = new JLabel("Usuario");
lblUsuario.setBounds(24, 65, 70, 15);
contentPane.add(lblUsuario);
JLabel lblsenha = new JLabel("Senha");
lblsenha.setBounds(24, 92, 70, 15);
contentPane.add(lblsenha);
txtusuario = new JTextField();
txtusuario.setBounds(112, 63, 219, 19);
contentPane.add(txtusuario);
txtusuario.setColumns(10);
JButton btnEntrar = new JButton("Entrar");
btnEntrar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
banco.AbrirConexao(); // Abrindo uma conexão
banco.stmt= banco.con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
String query;
query = "SELECT * FROM login"; // Comando sql para exibir tudo que houver na tabela login
banco.resultset = banco.stmt.executeQuery(query);
int stop=0; // variavel usada para flag ( não encontrei outro metodo estou aberto a sugestões)
while(banco.resultset.next() && stop == 0 ) {
// Comparando dados inseridos com a tabela
if(txtusuario.getText().equals(banco.resultset.getString("usuario")) && passsenha.getText().equals(banco.resultset.getString("senha")))
{
stop = 1; //Caso for encontrado o usuário na tabela stop recebe 1 e o programa continua
} else {
stop = 0; // Se não for encontrada o usuário na tabela stop recebe 0 e o programa não continua
}
}
if ( stop == 1) {
TelaPrincipal telap = new TelaPrincipal(); // Senha correta abre outra tela (JFrame) no meu caso "TelaPrincipal"
ou utilize System.out.println(" Login correto")
telap.setVisible(true); //Torna a tela Principal visível
dispose();// faz com que a tela de login desapareça após abrir tela principal
} else {
JOptionPane.showMessageDialog(null, "usuario ou senha incorretos"); //caso stop receber 0 sera exibido a mensagem
}
banco.FecharConexao(); // fecha nossa conexão com o banco de dados
} catch ( Exception ec) {}
}
});
btnEntrar.setBounds(166, 136, 117, 25);
contentPane.add(btnEntrar);
passsenha = new JPasswordField();
passsenha.setBounds(112, 90, 219, 19);
contentPane.add(passsenha);
}
}
No final teremos uma tela parecida com esta:
Basta agora inserir em usuario e senha " admin e admin " e clicar em entrar
Sou um pouco novo em java, como crio essa classe, com o form. N estou entendendo
ResponderExcluirNeste caso utilizei o Swing e criei um JFrame no Eclipse e a função de checagem de banco de dados é adicionada somente no botão " Entrar " todo o resto foi criado na aba desinger.
ExcluirSupondo que o admin tenha certos privilégios e usuários comuns não, como faria? Polimorfismo ou variável para checar a autorização do usuário?
ResponderExcluirJá fiz testes utilizando variáveis para fazer a checagem nunca cheguei a utilizar polimorfismo neste caso. Se não for um sistema muito complexo de login creio que utilizar variáveis seja uma boa escolha.
ExcluirPoker Tournaments - CasinoTrade.org
ResponderExcluirThe latest Poker Tournaments! Find all the latest poker Tournaments! 윌리엄 힐 Enjoy the w88 코리아 thrill of Texas Hold'em, Limit 유로 스타 사이트 & Omaha, Omaha and Texas Hold'em on 호벳 our 일본 야구 분석 사이트 site!