Foro de elhacker.net

Programación => Java => Mensaje iniciado por: jaxoR en 8 Noviembre 2013, 22:26 pm



Título: MySQL no pude
Publicado por: jaxoR en 8 Noviembre 2013, 22:26 pm
Bueno, tengo una base de datos llamada bd1, y una tabla que se llama codigo. Necesito saber como hacer para que cuando apriete un boton, se compruebe si ese codigo existe en la db.

Ya me lo había puesto m1t$u, lo intente de cuarenta formas, y no pude. Me quedé ahí:

Código
  1. if (e.getSource()==boton2)
  2.        {
  3.           Class.forName("com.mysql.jdbc.Driver");
  4.           Connection conexion = DriverManager.getConnection("jdbc:mysql://localhost/bd1", "root", "");
  5.           Statement st = conexion.createStatement();
  6.               ResultSet rs = st.executeQuery("SELECT * FROM codigo  where "+textfield1+"= '"+codigo+"'");
  7.  
  8.  
  9.  
  10.        }

El JTextField se llama: textfield1



Título: Re: MySQL no pude
Publicado por: dainodaibouken en 8 Noviembre 2013, 22:38 pm
Citar
ResultSet rs = st.executeQuery("SELECT * FROM codigo  where "+textfield1+"= '"+codigo+"'");

ya intentaste esto con textfield1.text ?


Título: Re: MySQL no pude
Publicado por: Mitsu en 8 Noviembre 2013, 23:12 pm
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 ID = '"+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.  

En lugar de 'txtfield1' va el nombre de la columna de tu tabla en base de datos (la que almacena los codigos de los usuarios)

Código
  1. ResultSet rs = st.executeQuery("SELECT * FROM codigo  where "+textfield1+"= '"+codigo+"'");
  2.  

Suponiendo que la columna se llama ID, la sentencia sería:

Código
  1. ResultSet rs = st.executeQuery("SELECT * FROM codigo  where ID = '"+codigo+"'");
  2.  

Seguramente no te devuelve nada porque la columna 'textfield1' no existe. Revisa eso.


PD: En este code pongo 'codigoUser' como String, ya que es un ejemplo. Generalmente la columna ID (primary key) son mediumint. Así que si tu columna ID es int o mediumint, el parámetro sería int codigoUser. Si lo has puesto como String, el code debería funcionar.


Título: Re: MySQL no pude
Publicado por: egyware en 9 Noviembre 2013, 04:44 am
Lo más probable (apoyando a Rurouni Kenshin) que textfield1  sea un objeto TextField y al hacer esto:

String query = "Select * FROM tabla1 where user = "+texfield1;
Quede al final como por ejemplo:
Select * FROM tabla1 where user = TextField@12317123
Que seria el identificador del objeto.
Deberías utilizar el getter getText() para obtener el contenido del TextField.

Y además debes organizar el código como te lo propone M1t$u.


Saludos!