如何插入外键弹簧mvc jdbc模板

时间:2017-11-17 02:59:25

标签: spring-mvc model-view-controller jdbc spring-jdbc jdbctemplate

我用两张桌子做了一件事:

CREATE TABLE productos (
    id int NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1) ,
    nombre varchar(40) NOT NULL,
    precio varchar(40) NOT NULL,
    fecha_vencimiento varchar(40) NOT NULL,
    FOREIGN KEY (NOMBRE) REFERENCES FABRICANTE(NOMBRE));
CREATE FABRICANTE (
    nombre varchar(40) PRIMARY KEY  NOT NULL,
    direccion varchar(40) NOT NULL,
    telefono varchar(40) NOT NULL,
    tipo varchar(40) NOT NULL);

但我还没有找到如何在表productos中插入外键的值。 目前我只保存产品表中的数据,但不保存外键     包控制器;

import Modelo.Conectar;
import Modelo.Productos;
import Modelo.ProductosValidar;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.support.SessionStatus;
import org.springframework.web.servlet.ModelAndView;

/**
 *
* @author aula3
*/
@Controller
@RequestMapping("add.htm")
public class AddController {
ProductosValidar productosValidar;
private JdbcTemplate jdbcTemplate;

public AddController()
{
    this.productosValidar=new ProductosValidar();
    Conectar con=new Conectar();
    this.jdbcTemplate=new JdbcTemplate(con.conectar() );
}
@RequestMapping(method=RequestMethod.GET)
public ModelAndView form()
{
    ModelAndView mav=new ModelAndView();
    mav.setViewName("add");
    mav.addObject("productos",new Productos());
    return mav;
}
@RequestMapping(method=RequestMethod.POST)
public ModelAndView form
    (
            @ModelAttribute("productos") Productos p,
            BindingResult result,
            SessionStatus status
    )
{
    this.productosValidar.validate(p, result);
    if(result.hasErrors())
    {
        ModelAndView mav=new ModelAndView();
        mav.setViewName("add");
        mav.addObject("productos",new Productos());
        return mav;
    }else
    {
    this.jdbcTemplate.update
    (
    "insert into productos (nombre,precio,fecha_vencimiento ) values (?,?,?)",
     p.getNombre(),p.getPrecio(),p.getFecha_vencimiento()
    );
     return new ModelAndView("redirect:/home.htm");
    }

}
} 

我应该在控制器的哪个部分放置外键的代码?

1 个答案:

答案 0 :(得分:0)

你有FOREIGN KEY (FABRICANTE_NOMBRE) REFERENCES FABRICANTE(NOMBRE));行 但是,您的表格中没有名为FABRICANTE_NOMBRE

的列