我用两张桌子做了一件事:
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");
}
}
}
我应该在控制器的哪个部分放置外键的代码?
答案 0 :(得分:0)
你有FOREIGN KEY (FABRICANTE_NOMBRE) REFERENCES FABRICANTE(NOMBRE));
行
但是,您的表格中没有名为FABRICANTE_NOMBRE