Foro de elhacker.net

Programación => Java => Mensaje iniciado por: jaxoR en 4 Noviembre 2013, 02:27 am



Título: Duda con MySQL
Publicado por: jaxoR en 4 Noviembre 2013, 02:27 am
Hola, tengo un problema.

Supongamos que tengo este code:

Código:
import javax.swing.*;
import java.awt.event.*;
public class Formulario extends JFrame implements ActionListener{
    private JTextField textfield1;
    private JLabel label1;
    private JButton boton1;
    public Formulario() {
        setLayout(null);
        label1=new JLabel("Usuario:");
        label1.setBounds(10,10,100,30);
        add(label1);
        textfield1=new JTextField();
        textfield1.setBounds(120,10,150,20);
        add(textfield1);
        boton1=new JButton("Aceptar");
        boton1.setBounds(10,80,100,30);
        add(boton1);
        boton1.addActionListener(this);
    }
   
    public static void main(String[] ar) {
        Formulario formulario1=new Formulario();
        formulario1.setBounds(0,0,300,150);
        formulario1.setVisible(true);
    }
}

Como hago para que cuando apriete aceptar, se conecte a una mysql y compruebe si ese nombre de usuario existe?

Gracias!


Título: Re: Duda con MySQL
Publicado por: Mitsu en 4 Noviembre 2013, 03:04 am
Hola. Primero, debes estudiar lo siguiente para empezar:

1) Conexiones a base de datos con Java.
2) Lenguaje SQL
3) Querys (Sentencias SQL)

Material hay mucho por la red, así que solo toca buscar un poco.

Te dejo un ejemplo sencillo de cómo obtener una conexión con MySql

Código
  1. public class Conexion {
  2.  
  3.    public static String userRoot="root"; // usar de Mysql
  4.    public static String passRoot=""; // pass de Mysql
  5.  
  6.  
  7.  
  8.    /* *************************************************************************************************************************
  9.      *                                        OBTIENE UNA CONEXION CON LA BASE DE DATOS
  10.      **************************************************************************************************************************/
  11.  
  12.    public static Connection getConnection() {
  13.        Connection conexion = null; // crea un objeto de conexion
  14.  
  15.        try
  16.        {
  17.            // registra el driver, el servidor, la tabla y el user y contrasenia
  18.            Class.forName("com.mysql.jdbc.Driver");
  19.            String servidor = "jdbc:mysql://localhost/contactos";
  20.            String usuarioDB = userRoot;
  21.            String passwordDB = passRoot;
  22.            conexion= DriverManager.getConnection(servidor,usuarioDB,passwordDB); // conexion obtiene todos los datos
  23.        }
  24.        catch(ClassNotFoundException | SQLException ex)
  25.        {
  26.            Dialogs.showErrorDialog(LoginController.ventanaAgenda,ex.getMessage());
  27.            conexion=null;
  28.        }
  29.  
  30.        return conexion;
  31.    }
  32.  
  33.  
  34. }
  35.  

Ahora, desde otro método llamamos a éste metodo, getConnection() para obtener la conexión con la base de datos.


**** UPDATE ***

Me dió un poco de pena dejar la respuesta así. Aquí te pongo un ejemplo de lo que pides.


Cómo podemos saber si un usuario existe en la tabla por medio de un codigo de usuario:

Código
  1. public static boolean existeUsuario(String codigoUser) {
  2.        coincidencia = false;
  3.  
  4.        Connection conexion = null;
  5.        PreparedStatement prepararConsulta = null;
  6.  
  7.        try {
  8.            conexion = (Connection) Conexion.getConnection(); // abrimos la conexion
  9.  
  10.            if(conexion != null) {
  11.            String sentencia = "select * from cliente where CodigoCliente = '"+codigoUser+"'";
  12.            prepararConsulta = conexion.prepareStatement(sentencia); // prepara la declaracion con la sentencia previa
  13.            ResultSet rs = prepararConsulta.executeQuery();
  14.  
  15.            if (!rs.next()){ // si el resultset esta vacio, no hay resultados obtenidos, por lo tanto no se ha encontrado
  16.               coincidencia = false;
  17.            }
  18.            else { // de lo contrario, el resultset tendra contenido, indicando que se ha encontrado el usuario
  19.               coincidencia = true;
  20.            }
  21.  
  22.           } // fin if (conexion != null)
  23.  
  24.        } catch(SQLException e){
  25.  
  26.            System.err.println(e.getMessage());
  27.  
  28.        } catch(NullPointerException npe) {
  29.  
  30.            System.err.println(npe.getMessage());
  31.        }
  32.        finally {
  33.            try {
  34.                if(prepararConsulta != null) {
  35.                prepararConsulta.close(); // cierra la conexion de la consulta
  36.                }
  37.                if(conexion != null) {
  38.                conexion.close();
  39.                } // cierra la conexion
  40.            } catch (SQLException e) {
  41.                System.err.println(e.getMessage());
  42.            }
  43.        } // fin finally
  44.  
  45.        return coincidencia;
  46.  
  47.    }
  48.  
Saludos.


Título: Re: Duda con MySQL
Publicado por: jaxoR en 4 Noviembre 2013, 18:10 pm
Muchas gracias! Ahora le pego una buena leida e intento hacerlo.