我想在netbeans和sqlserver中创建一个CRUD,我已经学会了如何进行插入和删除,但我无法解决更新。请帮帮我。
以下是我的代码: 方法更新:public void ModificarProducto (Producto c){
try{
con = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/abarrotes", "root", "123");
String sentencia = "UPDATE producto SET Nombre_Producto= ?, Marca_Producto = ?, Presentacion_Producto=?, Precio_Producto=?, Punto_de_Reorden = ?, Existencia = ? where Id_Producto=?;";
PreparedStatement pstm = con.prepareStatement(sentencia);
pstm.setInt(1, c.getId_Producto());
pstm.setString(2, c.getNombre_Producto());
pstm.setString(3, c.getMarca_Producto());
pstm.setString(4, c.getPresentacion_Producto());
pstm.setFloat(5, c.getPrecio_Producto());
pstm.setInt(6, c.getPunto_de_Reorden());
pstm.setInt(7, c.getExistencia());
pstm.execute();
pstm.close();
} catch(SQLException e){
System.out.println(e);
}
}
框架的按钮
OperacionesProducto basedatos = new OperacionesProducto();
private void Btn_InsertarActionPerformed(java.awt.event.ActionEvent evt) {
Producto prod = new Producto();
prod.setId_Producto(Integer.parseInt(Id_Producto.getText()));
prod.setNombre_Producto(Nombre_Producto.getText());
prod.setMarca_Producto(Marca_Producto.getText());
prod.setPresentacion_Producto(Presentacion_Producto.getText());
prod.setPrecio_Producto(Float.parseFloat(Precio_Producto.getText()));
prod.setPunto_de_Reorden(Integer.parseInt(Punto_de_Reorden.getText()));
prod.setExistencia(Integer.parseInt(Existencia.getText()));
basedatos.InsertarProducto(prod);
}
没有标记任何错误,但是数据库没有改变
?查询字符串与set命令的索引不匹配。我认为第一个应该排在最后,其他的都要往上移动一个,这样所有的名字才能匹配。改变:
String sentencia = "UPDATE producto SET "
+ "Nombre_Producto= ?, "
+ "Marca_Producto = ?, "
+ "Presentacion_Producto=?, "
+ "Precio_Producto=?, "
+ "Punto_de_Reorden = ?, "
+ "Existencia = ? "
+ "where Id_Producto=?;";
PreparedStatement pstm = con.prepareStatement(sentencia);
pstm.setString(1, c.getNombre_Producto());
pstm.setString(2, c.getMarca_Producto());
pstm.setString(3, c.getPresentacion_Producto());
pstm.setFloat(4, c.getPrecio_Producto());
pstm.setInt(5, c.getPunto_de_Reorden());
pstm.setInt(6, c.getExistencia());
pstm.setInt(7, c.getId_Producto());