Jump to content

ayuda JAVA+SQL


Recommended Posts

He tratado toda la tarde y no he podido lograr lo que quiero.

Sé que estoy fallando en el método.

 

Lo que deseo hacer, es que cuando me entreguen el nombre_usuario y password, entren a la bd con un método (nose si lo estaré haciendo bien) y me retornen datos que pertenecen a aquella 'id' y poder recoger estos datos para poder crear filas en otras tablas.

 

 

 

Este es el código:

 

Método:

public static List<usuario> loginAnuncio(String nombre_usuario,String password) {
         List<usuario> usuarios = new ArrayList();

         try {
            config cn= new config();
            ResultSet rs;
            Connection connection = cn.conectar();
            //Select the data from the database
            String sql = "select * from usuarios where nombre_usuario='"+nombre_usuario+"' and password='"+password+"'";
            Statement s = connection.createStatement();
            s.executeQuery (sql);
            rs = s.getResultSet();
            
                                usuario e = new usuario();
                                    e.setNombre(rs.getString("nombre"));
                                    e.setRegion(rs.getString("region"));
                                    e.setCiudad(rs.getString("ciudad"));
                                    e.setFono(rs.getString("fono"));
                                usuarios.add(e);
            
            rs.close ();
            s.close ();

        }catch(Exception e){
            System.out.println("Exception is;"+e);
        }
        return usuarios;
    }

 

Código donde llegan y se procesan resultado.

 

 

String nombre_usuario= request.getParameter("nombre_usuario");
                String password= request.getParameter("password");

                metodosAuto.loginAnuncio(nombre_usuario,password);

                usuario u=new usuario();
                response.setContentType("text/html");
                request.setAttribute("usuarios",u);
        //Disptching request
        RequestDispatcher dispatcher = request.getRequestDispatcher(page);
        if (dispatcher != null){
            dispatcher.forward(request, response);
        }

                
                String nombre=u.getNombre();
                String region=u.getRegion();
                String ciudad=u.getCiudad();
                String fono=u.getFono();
                String marca= request.getParameter("marca");
                String modelo= request.getParameter("modelo");
                String version= request.getParameter("version");
                String ano= request.getParameter("ano");
        String kilometraje= request.getParameter("kilometraje");
                String cilindrada= request.getParameter("cilindrada");
                String combustible= request.getParameter("combustible");
                String transmision= request.getParameter("transmision");
                String precio= request.getParameter("precio");
     /*         String foto1= request.getParameter("foto1");
                String foto2= request.getParameter("foto2");
                String foto3= request.getParameter("foto3");
                String foto4= request.getParameter("foto4");
                String foto5= request.getParameter("foto5");
                String foto6= request.getParameter("foto6");   */
                String comentarios= request.getParameter("comentarios");
                String estado= request.getParameter("estado");


        auto a= new auto();
                    a.setNombre_usuario(nombre_usuario);
                    a.setNombre(nombre);
                    a.setRegion(region);
                    a.setCiudad(ciudad);
                    a.setFono(fono);
                    a.setAnoAuto(ano);
                    a.setCilindrada(cilindrada);
                    a.setCombustible(combustible);
                    a.setComentarios(comentarios);
                    a.setEstado(estado);
               /*   a.setFoto1(foto1);
                    a.setFoto2(foto2);
                    a.setFoto3(foto3);
                    a.setFoto5(foto5);
                    a.setFoto4(foto4);
                    a.setFoto6(foto6);  */
                    a.setKilometraje(kilometraje);
                    a.setMarca(marca);
                    a.setModelo(modelo);
                    a.setPrecio(precio);
                    a.setTransmision(transmision);
                    a.setVersion(version);
                metodosAuto.guardarAuto(a);

 

 

Link to comment
Share on other sites

:blink: Estimado...

 

voy a modificar directamente el código que enviaste...

 

Supuestos: Si vamos a autenticar al usuario, se supone que este es unico (para la combinación de user / pass)

Esto quiere decir que el método: loginAnuncio(...) puede devolver el objeto usuario o null (tambien podria lanar una excepción, pero este no es el caso...

 

 

// Cambio del tipo de reotorno: solo a usuario
public static usuario loginAnuncio(String nombre_usuario,String password) {
         usuario usrEncontrado = null;

         try {
            config cn= new config();
            ResultSet rs;
            Connection connection = cn.conectar();
            //OPCIONAL: voy a cambiar la sentencia por sentencia preparada...
            // este tipo de sentencia permite evitar la inyecion de sql (seguridad)
            String sql = "select * from usuarios where nombre_usuario = ? and password = ?";
            // los signos de interrogacion son los puntos en que colocaremos los valores....
            PreparedStatement s = connection.prepareStatement( sql );
            s.setString(1, nombre_usuario); // primer ? en la quiery
            s.setString(2, password); // segundo ? en la quiery
            // ejecutamos la query, notese que no se envia el sql como parametro
            rs = s.executeQuery ();
            // vemos si tiene datos
            if ( rs.next() ) {
                usrEncontrado = new usuario();
                usrEncontrado.setNombre(rs.getString("nombre"));
                usrEncontrado.setRegion(rs.getString("region"));
                usrEncontrado.setCiudad(rs.getString("ciudad"));
                usrEncontrado.setFono(rs.getString("fono"));
            }
            
            rs.close ();
            s.close ();

        }catch(Exception e){
            System.out.println("Exception is;"+e);
        }
        return usrEncontrado;
    }

 

Para la segunda parte debemos respetar el "contrato" del método

SI encuentra el nombre de usuario y password es correcta, retorna el objeto usuario

SINO, retorna NULL

 

  String nombre_usuario= request.getParameter("nombre_usuario");
  String password= request.getParameter("password");
  // autenticamos al usuario
  usuario u  metodosAuto.loginAnuncio(nombre_usuario, password);
  // vemos si lo encontro...
  if ( u == null ){
    // PANICO: No lo encontro.... debes detener la ejecucion del metodo...
  } else {
    // OK, el usuario es correcto.... debes mantener el resto del codigo que enviaste
   // ...
  }

 

Espero haber ayudado...

 

Saludos

 

:magic:

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...