• Post Reply Bookmark Topic Watch Topic
  • New Topic

how to insert a foreign key spring mvc jdbc template  RSS feed

 
ives rodriguez
Greenhorn
Posts: 7
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I'm doing a crud with two tables:

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 (FABRICANTE_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);

but I have not found how to insert the value of the foreign key in the table productos.

    package Controller;

    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");
        }
      
    }
}
 
Dave Tolls
Ranch Foreman
Posts: 3062
37
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
What does your Productos  class look like?
What data is there in it in the request?
Does it have an instance of Fabricante in it, or does it have an id for it?
 
Tim Nachreiner
Ranch Hand
Posts: 61
1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You can use this code as a guide for developing your model/domain objects.

 
ives rodriguez
Greenhorn
Posts: 7
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Dave Tolls wrote:What does your Productos  class look like?
What data is there in it in the request?
Does it have an instance of Fabricante in it, or does it have an id for it?


package Modelo;

/**
*
* @author aula3
*/
public class Productos {

private int id;
private String nombre,precio,fecha_vencimiento;

public  Productos (){

}

    public Productos(String nombre, String precio, String fecha_vencimiento) {
        this.nombre = nombre;
        this.precio = precio;
        this.fecha_vencimiento = fecha_vencimiento;
    }

   

    public Productos(int id, String nombre, String precio, String fecha_vencimiento) {
        this.id = id;
        this.nombre = nombre;
        this.precio = precio;
        this.fecha_vencimiento = fecha_vencimiento;
    }
  
   
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getPrecio() {
        return precio;
    }

    public void setPrecio(String precio) {
        this.precio = precio;
    }

    public String getFecha_vencimiento() {
        return fecha_vencimiento;
    }

    public void setFecha_vencimiento(String fecha_vencimiento) {
        this.fecha_vencimiento = fecha_vencimiento;
    }
 


}
 
Dave Tolls
Ranch Foreman
Posts: 3062
37
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Well, first off you need the foreign key to Fabricante in the model somewhere.
 
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!