【问题标题】:my app is replacing the new product for the old one in my mongoDb collection我的应用程序正在用我的 mongoDb 集合中的旧产品替换新产品
【发布时间】:2021-07-21 17:51:51
【问题描述】:

我正在寻求帮助 :) 因为我在将新产品添加到我的 Mongo 数据库时遇到问题,因为正在替换旧产品

这是一个 Spring Boot Web 应用程序,它是关于一个超市产品数据库表单

新产品之前的表格

我想在数据库中添加一个新产品

所以我点击发送信息

我发送新产品后的表格

信息已被替换,我不希望这样:(


这是我的代码 @服务 productoServicioImplement.java

package com.example;

import java.util.List;
import java.util.Objects;
import java.util.Optional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class ProductoServicioImplement implements ProductoServicio2{
    
    @Autowired
    ProductosRepository productosRepository;

    @Override
    public List<Producto> getAll() {
        return productosRepository.findAll();
    }

    @Override
    public void addProducto(String stock, String nombre, String codigo, Double precio , categoriaProducto categoriaproducto) {
        Producto p;
        p = new Producto(Integer.SIZE, stock, nombre, codigo, precio, categoriaproducto);
        productosRepository.save(p);

    }

    @Override
    public void addProducto(Producto producto) {
        productosRepository.save(producto);

    }

    @Override
    public void updateProducto(Producto producto) {
        productosRepository.save(producto);

    }

    @Override
    public void deleteProducto(Integer id) {
        Optional<Producto> producto = productosRepository.findById(id.toString());
        if (producto.isPresent()) {
            productosRepository.deleteById(id.toString());
        }
    }
    
    
    
    public Producto guardar(Producto producto) {
        return productosRepository.save(producto);
    }
    
    public boolean borrar(Producto producto) {
        try {
            productosRepository.delete(producto);
            return true;
        } catch(Exception ex) {
            return false;
        }
    }
    
    public Producto actualizar(Producto producto) {
        return productosRepository.save(producto);
    }
    
    public Optional<Producto> consultarPorId(Producto producto) {
        return productosRepository.findById(producto.getId().toString());
    }
    
    public List<Producto>consultarTodos() {
        return productosRepository.findAll();
    }

    @Override
    public Producto getProductoById(Integer id) {
        Producto p = new Producto();
        if(Objects.equals(p.getId(), id)){
            
        }
        return p;
    }
    
}

Product.java

import java.io.Serializable;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

@Entity

@Document(collection = "productos")
@Table (name = "productos")
public class Producto implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column (name = "idProduct")
    @javax.persistence.Id
    private Integer id;
    @Column (name = "stock")
    private String stock;
    @Column (name = "nombre")
    private String nombre;
    @Column (name = "codigo")
    private String codigo;
    @Column (name = "precio")
    private Double precio;
    @Column (name = "categoriaproducto")
    @OneToMany(mappedBy = "categoriaproducto")
    private categoriaProducto categoriaproducto;
    
    
    
    
   
    public Producto(){
     
    }
    public Producto(Integer idd,String stockc, String nom, String cod, Double prec,categoriaProducto cgprod){
        super();
        this.id = idd;
        this.stock = stockc;
        this.nombre = nom;
        this.codigo = cod;
        this.precio= prec;
        this.categoriaproducto=cgprod;
    }
    
    
    public Producto (Producto producto){
        super();
        this.id = producto.id;
        this.stock = producto.stock;
        this.nombre = producto.nombre;
        this.codigo = producto.codigo;
        this.precio = producto.precio;
        this.categoriaproducto = categoriaProducto.perecibles;
    }

    public Integer getId() {
        return id;
    }

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

  

    public String getStock() {
        return stock;
    }

    public void setStock(String stock) {
        this.stock = stock;
    }

    

    
    

    public String getNombre() {
        return nombre;
    }

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

    public String getCodigo() {
        return codigo;
    }

    public void setCodigo(String codigo) {
        this.codigo = codigo;
    }

    public Double getPrecio() {
        return precio;
    }

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

    public categoriaProducto getCategoriaproducto() {
        return categoriaproducto;
    }

    public void setCategoriaproducto(categoriaProducto categoriaproducto) {
        this.categoriaproducto = categoriaproducto;
    }
    
    
    @Override
    public String toString(){
        return String.format(
        "Producto[stock =%s , nombre ='%s',codigo = '%s',precio =%s ,categoriaproducto = '%s' ]",
                stock,nombre,codigo,precio, categoriaproducto);
        
    }
}

如果需要我的更多代码来提供帮助,请随时问我 :)

【问题讨论】:

    标签: java spring mongodb spring-boot


    【解决方案1】:

    **继续

    这是服务接口

    import java.util.List;
    
    
    public interface ProductoServicio2  {
        
        
        List<Producto> getAll();
    
        Producto getProductoById(Integer id);
    
        void addProducto(String stock, String nombre, String codigo, Double precio, categoriaProducto categoriaproducto);
    
        void addProducto(Producto producto);
    
        void updateProducto(Producto producto);
    
        void deleteProducto(Integer id);
    }
    

    产品控制器

    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.Map;
    import javax.measure.quantity.Mass;
    import static javax.measure.unit.SI.KILOGRAM;
    import javax.sql.DataSource;
    import org.jscience.physics.amount.Amount;
    import org.jscience.physics.model.RelativisticModel;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.*;
        
    
    //@RestController
    
    @Controller
    public class ProductosController {
       
        @Autowired
      private DataSource dataSource;
        @Autowired
        ProductoServicioImplement serviceProd;
    
      
        
        //add producto
        @GetMapping (value = "/Producto")
        public String addProduct (Model model) {
            model.addAttribute("Producto", new Producto ());
            return "Producto";
            
    
        }
    
        @GetMapping (value = "/deleteProducto")
        public String deleteProduct (Model model, @RequestParam Integer id) {
            serviceProd.deleteProducto(id);
            return "redirect:/list-productos";
    
        }
    
        @GetMapping (value = "/updateProducto")
        public String updateProducto (Model model, @RequestParam Integer id) {
            Producto producto = serviceProd.getProductoById(id);
            model.addAttribute("productoup", producto);
            return "productoup";
    
        }
         //add producto
         @PostMapping (value = "/Producto")
        public String addProducto (@ModelAttribute Producto Producto,Model model, String stock, String nombre, String codigo, Double precio, categoriaProducto categoriaproducto ) {
            serviceProd.addProducto(stock, nombre, codigo, precio, categoriaproducto);
            model.addAttribute("Producto",Producto);
            return "result";
    
        }
        
        
    
    
        @PostMapping (value = "/updateProducto")
        public String updateProducto (Model model, Producto producto) {
            serviceProd.updateProducto(producto);
            return "redirect:/list-productos";
    
        }
    
        
        
        
    //    @RequestMapping(value = "/guardar", method = RequestMethod.POST, 
    //          consumes = MediaType.APPLICATION_JSON_VALUE, 
    //          produces = MediaType.APPLICATION_JSON_VALUE)
    //  public @ResponseBody Producto guardar(@RequestBody Producto entity) {
    //      return serviceProd.guardar(entity);
    //  }
    //        
    //    @RequestMapping(value = "/borrar", method = RequestMethod.POST, 
    //          consumes = MediaType.APPLICATION_JSON_VALUE, 
    //          produces = MediaType.APPLICATION_JSON_VALUE)
    //  public @ResponseBody boolean borrar(@RequestBody Producto entity) {
    //      return serviceProd.borrar(entity);
    //  }
    //  
    //  @RequestMapping(value = "/actualizar", method = RequestMethod.POST, 
    //          consumes = MediaType.APPLICATION_JSON_VALUE, 
    //          produces = MediaType.APPLICATION_JSON_VALUE)
    //  public @ResponseBody Producto actualizar(@RequestBody Producto entity) {
    //      return serviceProd.actualizar(entity);
    //  }
    //  
    //  @RequestMapping(value = "/consultarPorId", method = RequestMethod.POST, 
    //          consumes = MediaType.APPLICATION_JSON_VALUE, 
    //          produces = MediaType.APPLICATION_JSON_VALUE)
    //  public @ResponseBody Producto consultarPorId(@RequestBody Producto entity) {
    //      return serviceProd.consultarPorId(entity);
    //  }
    //  
    //  @RequestMapping(value = "/consultarTodos", method = RequestMethod.POST, 
    //          consumes = MediaType.APPLICATION_JSON_VALUE, 
    //          produces = MediaType.APPLICATION_JSON_VALUE)
    //  public @ResponseBody List<Producto> consultarTodos() {
    //      return serviceProd.consultarTodos();
    //  }
        
       
    
          @RequestMapping("/")
            String index() {
             return "index";
      }
      
      @RequestMapping("/hello")
        String hello(Map<String, Object> model) {
            RelativisticModel.select();
            String energy = System.getenv().get("ENERGY");
             if (energy == null) {
               energy = "12 GeV";
            }
         Amount<Mass> m = Amount.valueOf(energy).to(KILOGRAM);
         model.put("science", "E=mc^2: " + energy + " = "  + m.toString());
        return "hello";
    }
    
    
    
    
      @RequestMapping("/db")
      String db(Map<String, Object> model) {
        try (Connection connection = dataSource.getConnection()) {
          Statement stmt = connection.createStatement();
          stmt.executeUpdate("CREATE TABLE IF NOT EXISTS ticks (tick timestamp)");
          stmt.executeUpdate("INSERT INTO ticks VALUES (now())");
          ResultSet rs = stmt.executeQuery("SELECT tick FROM ticks");
    
          ArrayList<String> output = new ArrayList<String>();
          while (rs.next()) {
            output.add("Read from DB: " + rs.getTimestamp("tick"));
          }
    
          model.put("records", output);
          return "db";
        } catch (Exception e) {
          model.put("message", e.getMessage());
          return "error";
        }
      }
     
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-12
      • 1970-01-01
      • 2018-07-14
      • 2022-08-24
      • 1970-01-01
      相关资源
      最近更新 更多