viernes, 15 de julio de 2011

Autogeneracion de Codigo.

Esta entrada corresponde a la comparacion de codigos entre el generado mediante el diagrama con una herramienta case y el realizado actualmente.En el mio se generaron varios codigos asi que solo mostrare 3 que me parecen los principales.
 Clase Base de Datos
CODIGO AUTOGENERADO.
import java.util.*;
/**
 * Class BaseDeDatos
 */
public class BaseDeDatos {
  //
  // Fields
  //  
  //
  // Constructors
  //
  public BaseDeDatos () { };
  //
  // Methods
  //
  //
  // Accessor methods
  //
  //
  // Other methods
  //
  /**
   */
  public void Conexion(  )
  {
  }
  /**
   */
  public void getst(  )
  {
  }
  /**
   */
  public void getCt(  )
  {
  }
} 

Bueno aqui nos manda mas metodos que no aparecen en mi codigo original, algo de similitud serian el metodo "get" que nos regresaria un valor que nos dira si la conexion es correcta. Mi codigo original es el siguiente aqui mismo cree el objeto VEliminar para mandar llamar a la clase del mismo nombre y poder eliminar el registro seleccionado de la base de datos tambien.
import java.sql.*;
import java.util.*;

public class DBManagement {

    private final static String drv ="com.mysql.jdbc.Driver";
    private final static String db = "jdbc:mysql://localhost:3306/bdlogin";
    private final static String user = "root";
    private final static String pass = "131090";

    private String contra;//
    private String usuario;//
    
    Connection ct;
    private Statement st;
    private ResultSet rs;

    public DBManagement()
    {
    try
        {
        Class.forName(drv);
        ct = DriverManager.getConnection(db, user, pass);
        st = ct.createStatement();

        System.out.println("Conexion Exitosa");
        }catch(Exception e)
        {
        System.out.println("No se Puedo conectar");
        }
    }
//constructor para extraer los datos de una tabla sql//
    public void showAll()
    {    
    try{
        ResultSet rs = st.executeQuery("SELECT * FROM Directorio");
        while(rs.next()){
  System.out.println(rs.getString(1)+"|"+ rs.getString(2)+"|"+rs.getString(3));
        }
        }catch(SQLException e){

        System.out.println(e.getMessage());
        System.out.println("Error al realizar la consulta");
    }
    }
    public void eliminarID(int IDtxt)
    {
    try
    {
        st.executeUpdate("DELETE FROM Directorio WHERE ID = "+IDtxt);
    }catch(Exception e)
    {
        System.out.println("No se pudo X_X");
    }
    }
    public Statement getst(){
     return st;
   }
} 

Otra seria la de Inicio de Sesion, aqui el usuario y la contraseña los puse establecidos ya que se me dificulto un poco poder integrar muchas partes de codigo y batalle para poder ingresar mas usuarios, asi que solo es uno por el momento.

AutoGenerado.
import java.util.*;
/**
 * Class InicioSesion
 */
public class InicioSesion {
  //
  // Fields
  //
  private String usuario;
  private String password;
  
  //
  // Constructors
  //
  public InicioSesion () { };
    //
  // Methods
  //
  //
  // Accessor methods
  //
  /**
   * Set the value of usuario
   * @param newVar the new value of usuario
   */
  private void setUsuario ( String newVar ) {
    usuario = newVar;
  }
  /**
   * Get the value of usuario
   * @return the value of usuario
   */
  private String getUsuario ( ) {
    return usuario;
  }

  /**
   * Set the value of password
   * @param newVar the new value of password
   */
  private void setPassword ( String newVar ) {
    password = newVar;
  }
  /**
   * Get the value of password
   * @return the value of password
   */
  private String getPassword ( ) {
    return password;
  }
  //
  // Other methods
  //
  /**
   */
  public void getVerificar(  )
  {
  }
  /**
   */
  public void getData_BD(  )
  {
  }
Mi codigo:
Aqui tengo mas implementacion de Interfaz Grafica y pues los atributos no cambiaron mucho seria usuario y password y  nos muestra si el usuario existe o no ya que este esta registrado en la base de datos.
import javax.swing.*;
import java.io.*;
import java.sql.*;
import java.awt.Panel.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ActionListener.*;

public class VentanaLogin extends JFrame implements ActionListener
{
    private JTextField txtUser, txtPass;
    private JLabel lblUser,lblPass;
    private JButton btnAceptar, btnCancelar;
    private DBManagement BaseDatos = new DBManagement(); 
    String usuario, elPassword;

    public VentanaLogin()
    {
    Container contenedor = getContentPane();
    contenedor.setLayout(new FlowLayout());
    //crear etiqueta y cuadro de texto del usuario
    txtUser = new JTextField(10);
    lblUser = new JLabel("Usuario: ");
    txtUser.setToolTipText("Escriba su nombre de usuario");
    contenedor.add(Box.createVerticalStrut(50) );
    contenedor.add(lblUser);
    contenedor.add(txtUser);
    //crear etiqueta y cuadro de texto del pw
    txtPass = new JPasswordField(10);
    lblPass = new JLabel("Contraseña: ");
    txtPass.setToolTipText("Escriba su contraseña");
    contenedor.add(lblPass);
    contenedor.add(txtPass);
    //Crear y agregar los botones
    btnAceptar = new JButton("Iniciar Sesion");
    //establecer Boton aceptar por defecto 
    getRootPane().setDefaultButton(btnAceptar);

    btnCancelar = new JButton("Cancelar");
    contenedor.add(btnAceptar);
    contenedor.add(btnCancelar);

    btnAceptar.addActionListener(this);
    btnCancelar.addActionListener(this);
    //crear un escuchador 
    
    setTitle("Iniciando");
    setSize(500,300);
    setResizable(false);
    Dimension tamFrame = this.getSize();
    Dimension tamPanalla = Toolkit.getDefaultToolkit().getScreenSize();

    setVisible(true); //Hacer visible al frame
    }
    public boolean validarUsuario(String elUser, String elPass) throws IOException
    {
try
    {
    ResultSet resultadosConsulta = BaseDatos.getst().executeQuery("SELECT*FROM usuarios WHERE usuario ='"+elUser+"' AND password='"+elPass+"'");

    if(resultadosConsulta.first())
        return true;
    else 
        return false;
    }catch (Exception e)
    {
    e.printStackTrace();
    return false;
    }
  }

public void actionPerformed(ActionEvent evt)
    {
        if(evt.getSource() == btnAceptar)
        {
            try {
                if(txtUser.getText().length() > 0 && txtPass.getText().length() > 0)
            {

            if( validarUsuario(txtUser.getText(), txtPass.getText()))
            {
                  setVisible(false);
                  JOptionPane.showMessageDialog(null, "El nombre de Usuario y/0 contrasenia son validos");
                  JOptionPane.showMessageDialog(null, txtUser.getText()+" " +txtPass.getText() );
            GUI g = new GUI();
            }
            else
             {
                  JOptionPane.showMessageDialog(null, "El nombre de Usuario y/0 contrasenia no son validos");
                  JOptionPane.showMessageDialog(null, txtUser.getText()+" " +txtPass.getText() );
                  txtUser.setText("");
                  txtPass.setText("");
                  txtUser.requestFocusInWindow();
             }
            } 
            else 
                {
                JOptionPane.showMessageDialog(null, "Debe escribir usuario y contrasena\n" + " no dejar campos vacios");
                }
            }catch(Exception e)
            {
                e.printStackTrace();
            }
        }else if(evt.getSource() == btnCancelar)
        {
            System.exit(0);
    }
    }
    public static void main(String[] args)
    {
    VentanaLogin prueba = new VentanaLogin();
    prueba.setDefaultCloseOperation(prueba.EXIT_ON_CLOSE);
    }
}

1 comentario:

  1. Lo que me gusto del autogenerador es que te define la estructura y ya de ahi vas mejorando el codigo, aunque lo mejor es escribirlo todo para saber exactamente que funcion realiza cada una de las lineas del codigo
    Saludos(:

    ResponderEliminar