Problem with querys in Spring MVC WEB

0

I have a problem with queries of INSERT INTO ordenes_producto ... and UPDATE ordenes_producto SET ... . When I complete the form and it does not return any problems. It does exactly what it should do. If the query is correct but in the database I do not see it reflected.

Does anyone know if I am doing something wrong in the querys or what is happening? Thank you very much in advance.

@RequestMapping(method=RequestMethod.POST)
public ModelAndView form(@ModelAttribute("combinado") CombinedCommand c,
            BindingResult result,
            SessionStatus status,
            HttpServletRequest request){
    int id = Integer.parseInt(request.getParameter("id"));
    double total = 0;
    if (c.getAux().getNombre_producto().equals("")==false){
        String ids = c.getAux().getNombre_producto();
        double val = c.getAux().getPrecio_unitario();
        if (buscarProducto(ids, val).getNombre_producto().equals("")){
            this.jdbcTemplate.update("INSERT INTO productos (nombre_producto, precio_unitario) VALUES (?, ?)", c.getAux().getNombre_producto(), c.getAux().getPrecio_unitario());
            c.getAux().setCodigo_producto(buscarProducto(ids, val).getCodigo_producto());
        }

        total += (c.getAux().getCantidad_deseada()*c.getAux().getPrecio_unitario());
    }
    ArrayList<Producto> p = c.getP();
    for (int i = 0; i < p.size(); i++){
        double total_aux = (p.get(i).getCantidad_deseada()*p.get(i).getPrecio_unitario());
        total += (p.get(i).getCantidad_deseada()*p.get(i).getPrecio_unitario());
        if (buscarProducto(p.get(i).getNombre_producto(), p.get(i).getPrecio_unitario()).getNombre_producto().equals("")){

            KeyHolder keyHolder = new GeneratedKeyHolder();
            String nombre = p.get(i).getNombre_producto();
            String precio = p.get(i).getPrecio_unitario()+"";
            String sql = "INSERT INTO productos (nombre_producto, precio_unitario) VALUES (?, ?)";
            this.jdbcTemplate.update((Connection connection) -> {
                PreparedStatement ps =
                        connection.prepareStatement(sql, new String[] {"id"});
                ps.setString(1, nombre);
                ps.setString(2, precio);
                return ps;
            },
                keyHolder);
            p.get(i).setCodigo_producto(keyHolder.getKey().intValue());
            this.jdbcTemplate.update("INSERT INTO ordenes_producto (codigo_orden, codigo_producto, cantidad, valor) VALUES (?,?,?,?)", id, p.get(i).getCodigo_producto(), p.get(i).getCantidad_deseada(), total_aux);
        } else {
            this.jdbcTemplate.update("UPDATE ordenes_producto SET cantidad=?, valor=? WHERE codigo_producto=? AND codigo_orden=?", p.get(i).getCantidad_deseada(), total, p.get(i).getCodigo_producto(), id);
        }
    }

    this.jdbcTemplate.update("UPDATE ordenes_compra SET valor_total = ? WHERE codigo_orden = ?", total, id);
    return new ModelAndView("redirect:/edit.htm?id="+Integer.parseInt(request.getParameter("id")));
}

Esta es mi base de datos

CREATE TABLE IF NOT EXISTS dependencia(
codigo_dependencia INT NOT NULL AUTO_INCREMENT,
nombre_dependencia VARCHAR(32) NOT NULL,
PRIMARY KEY (codigo_dependencia)
);

CREATE TABLE IF NOT EXISTS usuarios(
codigo_usuario INT NOT NULL AUTO_INCREMENT,
codigo_dependencia INT NOT NULL,
nombre_completo VARCHAR(32) NOT NULL,
contrasena VARCHAR(64) NOT NULL,
cargo VARCHAR(12) NOT NULL,
CONSTRAINT fk_codigo_dependencia FOREIGN KEY (codigo_dependencia) REFERENCES dependencia(codigo_dependencia),
PRIMARY KEY (codigo_usuario)
);

CREATE TABLE IF NOT EXISTS productos(
codigo_producto INT NOT NULL AUTO_INCREMENT,
nombre_producto VARCHAR(16) NOT NULL,
precio_unitario DOUBLE NOT NULL,
PRIMARY KEY (codigo_producto)
);

CREATE TABLE IF NOT EXISTS ordenes_compra(
codigo_orden INT NOT NULL AUTO_INCREMENT,
codigo_usuario INT NOT NULL,
fecha DATE NOT NULL,
valor_total DOUBLE NOT NULL,
CONSTRAINT fk_codigo_usuario FOREIGN KEY (codigo_usuario) REFERENCES usuarios(codigo_usuario),
PRIMARY KEY (codigo_orden)
);

CREATE TABLE IF NOT EXISTS ordenes_producto(
codigo_orden INT NOT NULL,
codigo_producto INT NOT NULL,
cantidad INT NOT NULL,
valor DOUBLE NOT NULL,
CONSTRAINT fk_orden_formulario FOREIGN KEY (codigo_orden) REFERENCES ordenes_compra(codigo_orden),
CONSTRAINT fk_producto_formulario FOREIGN KEY (codigo_producto) REFERENCES productos(codigo_producto),
PRIMARY KEY (codigo_orden, codigo_producto, cantidad, valor)
);
    
asked by Jhenner Tigreros 01.11.2018 в 00:52
source

0 answers