Java - java.sql.SQLException:Parameter index out of range (1 > number of parameters, which is 0).

 
Vista:

java.sql.SQLException:Parameter index out of range (1 > number of parameters, which is 0).

Publicado por Juan Antonio (25 intervenciones) el 07/01/2020 01:03:11
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Productos_almacenesDAOMySQLImpl extends BBDDManager implements Productos_almacenesDAO {
 
    @Override
    public void add(Productos_almacenes productos_almacenes) {
         try{
            this.openConnection();
            String sql = "INSERT INTO `productos-almacenes` (`ID_producto`, `ID_almacen1`, `ID_almacen2`, `Stock`) VALUES ('?', '?', '?', '?')";
            PreparedStatement ps = con.prepareStatement (sql);
            ps.setInt(1, productos_almacenes.getID_producto());
            ps.setInt(2,productos_almacenes.getID_almacen1());
            ps.setInt(3, productos_almacenes.getID_almacen2());
            ps.setInt(4, productos_almacenes.getStock());
 
 
            ps.executeUpdate();
 
 
 
            this.closeConnection();
        }catch (Exception e){
        e.printStackTrace();
        }
    }





En el ejecutador:

1
2
3
4
5
6
7
public class Menu_Productos_almacenes {
    public static void main(String[] args) {
 
Productos_almacenes p2 = new Productos_almacenes (1, 2, 3, 9 );
    Productos_almacenesDAOFactory fabricaProductos_almacenesDAO = new Productos_almacenesDAOFactory();
        Productos_almacenesDAO impl2= fabricaProductos_almacenesDAO.getProductos_almacenesDAO();
        impl2.add(p2);


Obtengo el error: java.sql.SQLException:Parameter index out of range (1 > number of parameters, which is 0).

Alguien podría ayudarme? gracias anticipadas
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de pablo
Val: 626
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

java.sql.SQLException:Parameter index out of range (1 > number of parameters, which is 0).

Publicado por pablo (239 intervenciones) el 07/01/2020 13:20:12
Hola Juan Antonio, qué tal?

Bueno tu problema esta en como haces el query de insert intentalo de la siguiente forma:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Productos_almacenesDAOMySQLImpl extends BBDDManager implements Productos_almacenesDAO {
 
    @Override
    public void add(Productos_almacenes productos_almacenes) {
         try{
            this.openConnection();
            String sql = "INSERT INTO productos-almacenes (ID_producto, ID_almacen1, ID_almacen2, Stock) VALUES (?, ?, ?, ?)"; //Cambio a realizar
            PreparedStatement ps = con.prepareStatement (sql);
            ps.setInt(1, productos_almacenes.getID_producto());
            ps.setInt(2,productos_almacenes.getID_almacen1());
            ps.setInt(3, productos_almacenes.getID_almacen2());
            ps.setInt(4, productos_almacenes.getStock());
 
 
            ps.executeUpdate();
 
 
 
            this.closeConnection();
        }catch (Exception e){
        e.printStackTrace();
        }
    }

No necesitas ponerle comillas a los ? ya que si no los interpretara como los valores reales que recibirá.

Prueba para ver y cualquier cosa comentas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Franklin
Val: 456
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

java.sql.SQLException:Parameter index out of range (1 > number of parameters, which is 0).

Publicado por Franklin (179 intervenciones) el 07/01/2020 13:37:51
Si no me equivoco al usar las comillas ( ' ' ) recibe los valores reales de <?>, en vez de recibir una incognita y al no definir ninguna; estas ingresando 4 parametros Int(s) pero 0 incognitas(?). Creo que si se entiende... eso espero.

Usaste: ....VALUES ('?', '?', '?', '?')" ;
Deberías: ...VALUES(?,?,?,?);

Lo mismo que comenta Pablo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

java.sql.SQLException:Parameter index out of range (1 > number of parameters, which is 0).

Publicado por juan antonio (25 intervenciones) el 07/01/2020 13:40:29
Muchisimas gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar