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:
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 incrementalpublic 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); }
Código java:
Ver original
public String insertarProducto(String nombre, float precio) throws ClassNotFoundException, SQLException, InstantiationException, IllegalAccessException { int r; try { Class.forName("com.mysql.jdbc.Driver").newInstance(); this.conn = java.sql.DriverManager.getConnection("jdbc:mysql://localhost/catalogo", "root", "pruebas"); this.stmt = conn.prepareStatement(sql); this.stmt.setString(1, nombre); this.stmt.setFloat(2, precio); r = this.stmt.executeUpdate(); return ("<p id=\"error\">Error: " + e + sql + "</p>"); } this.stmt.close(); this.rs.close(); this.s.close(); this.conn.close(); return (sql); }