Validacion de Usuario

En esta aplicacion podremos observar un codigo con el cual nos conectaremos a una base de datos desde java y validaremos un usuario que se encuentra en una base de datos en MySql dandole tambien algunos permisos al usuario para ingresar a una aplicacion y aun lo mas importante es que esta aplicacion es extensible para otros usuarios.


acontinuacion presentare las clases utilizadas:




package co.com.udistrital.busqueda;


import java.sql.*;


import co.com.udistrital.conexion.ConexionBaseDatos;
import co.com.udistrital.conexion.SingletonConexionBaseDatos;

public class Busqueda {

private int cont;
private String usuarios[][];
private ResultSet tabla;
static String cadenaSql;
private Statement stmt;
private Connection conexion=null;

public Busqueda(String usuario){

ConexionBaseDatos conexionBaseDatos= new SingletonConexionBaseDatos();
cadenaSql = "SELECT * FROM usuarios WHERE(usuario='"+usuario+"')";
tabla=null;
usuarios= new String[4][4];

try{

conexion= conexionBaseDatos.getConexion();
stmt= (Statement) conexion.createStatement();
tabla = stmt.executeQuery(cadenaSql);

while(tabla.next()){
cont++;
for(int i=1; i<=3; i++){
System.out.print(tabla.getString(i)+"\t");
usuarios[cont][i]=tabla.getString(i);
}
System.out.println();
}
}catch(SQLException ex){

ex.printStackTrace();
System.out.println("toco seguirle cacharreando");
}

}

public String getContrasena() {
return usuarios[1][2];
}

public String getTipo() {
return usuarios[1][3];
}
}





package co.com.udistrital.conexion;

import java.sql.*;

public class ConexionBaseDatos {

static String db="usuarios";
static String login="root";
static String password="123";
static String url="jdbc:mysql://localhost/"+db;

private Connection conexion=null;

public ConexionBaseDatos(){


try{
Class.forName("com.mysql.jdbc.Driver");
conexion=DriverManager.getConnection(url, login, password);

if (conexion!=null){
System.out.println("Coneccion a base de datos "+db+" OK");
}

}catch(SQLException e){
System.out.println("no cargo el driver");
System.out.println(e);
}catch(ClassNotFoundException e){
System.out.println("lo mismo");
System.out.println(e);
}
}

public Connection getConexion() {
return conexion;
}
}





package co.com.udistrital.conexion;

public class SingletonConexionBaseDatos extends ConexionBaseDatos{

static private ConexionBaseDatos singletonConexionBaseDatos=null;

public SingletonConexionBaseDatos(){}

public ConexionBaseDatos getConexionBaseDatos(){

if ( singletonConexionBaseDatos==null){
singletonConexionBaseDatos=new ConexionBaseDatos();
}

return singletonConexionBaseDatos;
}
}






package co.com.udistrital.tiposClientes;

public abstract class ClienteAbstracto {

public void MostrarDialogo(){};

}






package co.com.udistrital.tiposClientes;

import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class ClienteTipo1 extends ClienteAbstracto {

public void MostrarDialogo(){

JFrame uno=new JFrame();

JOptionPane.showMessageDialog(uno, "USUARIO VALIDO TIPO: "+"1", "CORRECTO", JOptionPane.INFORMATION_MESSAGE );

uno.setVisible(true);

}
}






package co.com.udistrital.tiposClientes;

import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class ClienteTipo2 extends ClienteAbstracto {

public void MostrarDialogo(){

JFrame uno=new JFrame();

JOptionPane.showMessageDialog(uno, "USUARIO VALIDO TIPO: "+"2", "CORRECTO", JOptionPane.INFORMATION_MESSAGE );

uno.setVisible(true);
}
}







package co.com.udistrital.tiposClientes;

import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class ClienteTipo3 extends ClienteAbstracto {

public void MostrarDialogo(){

JFrame uno=new JFrame();

JOptionPane.showMessageDialog(uno, "USUARIO VALIDO TIPO: "+"3", "CORRECTO", JOptionPane.INFORMATION_MESSAGE );

uno.setVisible(true);

}
}






package co.com.udistrital.tiposClientes;

public class CreadorCliente {

public void CrearCliente(){};

public void CredorClienteSegunTipo(String tipo){

if (tipo.equals("1")){
CreadorTipo1 tipo1 = new CreadorTipo1();
tipo1.CrearCliente();
}
if (tipo.equals("2")){
CreadorTipo2 tipo2 = new CreadorTipo2();
tipo2.CrearCliente();
}
if (tipo.equals("3")){
CreadorTipo3 tipo3 = new CreadorTipo3();
tipo3.CrearCliente();
}

}

}







package co.com.udistrital.tiposClientes;

public class CreadorTipo1 extends CreadorCliente{

public void CrearCliente(){

ClienteTipo1 clienteTipo1= new ClienteTipo1();
clienteTipo1.MostrarDialogo();

}
}






package co.com.udistrital.tiposClientes;

public class CreadorTipo2 extends CreadorCliente {

public void CrearCliente(){

ClienteTipo2 clienteTipo2= new ClienteTipo2();
clienteTipo2.MostrarDialogo();

}
}






package co.com.udistrital.tiposClientes;

public class CreadorTipo3 extends CreadorCliente {

public void CrearCliente(){

ClienteTipo3 clienteTipo3= new ClienteTipo3();
clienteTipo3.MostrarDialogo();

}

}








package co.com.udistrital.validacion;

import javax.swing.JFrame;
import javax.swing.JOptionPane;

import co.com.udistrital.busqueda.Busqueda;
import co.com.udistrital.tiposClientes.CreadorCliente;

public class Validar {

public Validar(String usuario,String contrasena){

JFrame uno=new JFrame();
CreadorCliente creadorCliente= new CreadorCliente();
Busqueda busqueda= new Busqueda(usuario);
System.out.println(busqueda.getContrasena()+ "/t"+contrasena);

if (busqueda.getContrasena().equals(contrasena)){

creadorCliente.CredorClienteSegunTipo(busqueda.getTipo()+"");
System.out.println("usuario valido");
}else{

JOptionPane.showMessageDialog(uno,"USUARIO NO VALIDO","ERROR",JOptionPane.ERROR_MESSAGE);
System.out.println("usuario no valido");
}
}
}










package co.com.udistrital.ventana;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import co.com.udistrital.validacion.Validar;

public class Ventana implements ActionListener {

private JFrame jFrameVentana;
private Container containerPanePrincipal;
private JButton jButtonAceptar;
private JTextField jTextFieldUsuario;
private JPasswordField jPasswordContrasena;
private JLabel jLabelUser;
private JLabel jLabelPassword;
static JLabel jLabelValidacion;

public Ventana(){

jFrameVentana=new JFrame ("VALIDACION DE USUARIO");

jButtonAceptar=new JButton ("ACEPTAR");
jButtonAceptar.addActionListener(this);


jTextFieldUsuario=new JTextField();

jPasswordContrasena=new JPasswordField();

jLabelUser=new JLabel("Usuario");
jLabelPassword=new JLabel("Contraseña");
jLabelValidacion=new JLabel("VALIDACION DE USUARIO");

containerPanePrincipal=new Container();
containerPanePrincipal=jFrameVentana.getContentPane();
containerPanePrincipal.setLayout(null);

jButtonAceptar.setBounds(97, 140, 90, 35);
containerPanePrincipal.add(jButtonAceptar);

jTextFieldUsuario.setBounds(125,50,120,24);
jTextFieldUsuario.setEditable(true);
jTextFieldUsuario.setBackground(Color.white);
jTextFieldUsuario.setAlignmentX(JTextField.LEFT_ALIGNMENT);
containerPanePrincipal.add(jTextFieldUsuario);

jPasswordContrasena.setBounds(125,90,120,24);
jPasswordContrasena.setEditable(true);
jPasswordContrasena.setBackground(Color.white);
jPasswordContrasena.setAlignmentX(JTextField.LEFT_ALIGNMENT);
containerPanePrincipal.add(jPasswordContrasena);

jLabelUser.setBounds(25, 44, 70, 40);
containerPanePrincipal.add(jLabelUser);

jLabelPassword.setBounds(25, 84, 70, 40);
containerPanePrincipal.add(jLabelPassword);

jLabelValidacion.setBounds(65, 5, 150, 35);
containerPanePrincipal.add(jLabelValidacion);


jFrameVentana.getRootPane().setDefaultButton(jButtonAceptar);
jFrameVentana.pack();
jFrameVentana.setSize(285,215);
jFrameVentana.setLocationRelativeTo(null);
jFrameVentana.setResizable(false);
jFrameVentana.setVisible(true);
jFrameVentana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public void actionPerformed(ActionEvent e) {

if (e.getSource()==jButtonAceptar){

Validar validar= new Validar(jTextFieldUsuario.getText(),jPasswordContrasena.getText());

}

}

}










package co.com.udistrital.ventana;

public class Main {

public static void main(String[] args) {
Ventana ventana=new Ventana();
}
}

Aca podremos encontrar todas las clases necesarias para la compilacion en eclipse pero sin embargo necesitaremos de la base de datos en mysql llamada usuarios de la siguiente manera:


usuario

contrasena

permisos

jimmy

1234

1

darepecu

123

1

jack

sparrow

2

aura

aura89

2

caro

carito

3

perro

uno

3

pero tambien necesitaremos de un .jar para la conexion a base de datos con MySql.

En la clase conexion tambien podremos encontrar alli los parametros para la conexion a base de datos por lo cual tendremos que hacer en esa clase las modificaciones pertinentes segun nuestra configuracion de MySql.

2 comentarios:

  1. Hola, gracias por el aporte!
    Cómo se haría para que una vez logado el usuario, y según su perfil se viera una pantalla u otra (ventanas diferentes según el perfil de usuario)...
    ¡Gracias!

    ResponderEliminar

Hora Bogotá Colombia