Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/03/2011, 09:28
nevergame
 
Fecha de Ingreso: julio-2006
Ubicación: sevilla
Mensajes: 251
Antigüedad: 18 años, 6 meses
Puntos: 5
problemas insert mysql java

Hola a todos

Tengo una pagina jsqp que usa un beans para manipular datos en mysql mediante el conector oficial de mysql para java, la cuestion es que el select lo realiza correctamente pero cuando intento un insert o update me lanza

java.lang.NullPointerException justo en la linea en la que lanzo la sql


El codigo es llamado desde la pagina jsp accediendo mediante un beans de la siguiente forma.

Código:
prod.insertarProducto(prod.getNombre(),prod.getPrecio());
Código:
 public String insertarProducto(String nombre, float precio) throws ClassNotFoundException, SQLException, InstantiationException, IllegalAccessException {

        int r;
        String sql = "INSERT INTO productos (id_producto, nombre, precio) VALUES (NULL, '" + nombre + "', '" + precio + "')";

        try {
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            this.conn = java.sql.DriverManager.getConnection("jdbc:mysql://localhost/catalogo", "root", "pruebas");
            r = this.s.executeUpdate(sql);
        } catch (Exception e) {
            return ("<p id=\"error\">Error: " + e + sql + "</p>");

        }



        this.rs.close();
        this.s.close();
        this.conn.close();
        return (sql);

    }
Bueno despues de mucho google encuentro que hay que prepara la sql con un metodo de java sin embargo no se como indicar en dicho metodo que el primer campo es un campo autonumerico incremental

Código java:
Ver original
  1. public String insertarProducto(String nombre, float precio) throws ClassNotFoundException, SQLException, InstantiationException, IllegalAccessException {
  2.  
  3.         int r;
  4.         String sql = "INSERT INTO productos (id_producto, nombre, precio) VALUES (NULL, ?, ?)";
  5.  
  6.         try {
  7.             Class.forName("com.mysql.jdbc.Driver").newInstance();
  8.             this.conn = java.sql.DriverManager.getConnection("jdbc:mysql://localhost/catalogo", "root", "pruebas");
  9.  
  10.             this.stmt = conn.prepareStatement(sql);
  11.  
  12.             this.stmt.setString(1, nombre);
  13.             this.stmt.setFloat(2, precio);
  14.  
  15.             r = this.stmt.executeUpdate();
  16.         } catch (Exception e) {
  17.             return ("<p id=\"error\">Error: " + e + sql + "</p>");
  18.  
  19.         }
  20.  
  21.  
  22.         this.stmt.close();
  23.         this.rs.close();
  24.         this.s.close();
  25.         this.conn.close();
  26.         return (sql);
  27.  
  28.     }

Última edición por nevergame; 06/03/2011 a las 10:16 Razón: avanzando un poco