डेटाबेस में डेटा डालने का प्रयास करें। हर बार यह त्रुटि दिखाएं

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'update, stock_id) values (0, 0.0, 10018, 1, null, 0, null, 0)' at line 1

डेटाबेस

CREATE TABLE `stock_log` (   
   `stock_id` int(11) NOT NULL AUTO_INCREMENT,   
   `added_employee` int(11) DEFAULT NULL,  
   `added_item` int(11) DEFAULT NULL,  
   `added_quantity` int(11) DEFAULT NULL,   
   `added-price` double DEFAULT NULL,   
   `supplier` int(11) DEFAULT NULL NOT,
   `update` varchar(45) DEFAULT NULL,  
   `update_reason` varchar(45) DEFAULT NULL,
   PRIMARY KEY (`stock_id`), 
   KEY `added_employee_idx` (`added_employee`),   
   KEY `added_item_idx` (`added_item`), 
   KEY `supplier_idx` (`employee`),
   CONSTRAINT `added_employee` FOREIGN KEY (`added_employee`) 
   REFERENCES `employee` (`employee_id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
   CONSTRAINT `added_item` FOREIGN KEY (`added_item`) 
   REFERENCES `item_stock` (`item_id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
   CONSTRAINT `supplier` FOREIGN KEY (`supplier`) 
   REFERENCES `supplier`(`supplier_id`) ON DELETE NO ACTION ON UPDATE NO ACTION )
   ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

मॉडल

@Entity
@Table(name="stock_log") 
public class Stock {

    @Id
    @Column(name="stock_id")    
    private int stockId;
    @Column(name="added_employee" )     
    private int employee;
    @Column(name="added_item")  
    private int item; 
    @Column(name="added_quantity")  
    private int addQty;
    @Column(name="added_price")     
    private double addedPrice;
    @Column(name="supplier")    
    private int supplier;
    @Column(name="update")  
    private String update;
    @Column(name="update_reason")   
    private String reason;      

    public Stock() {
        super();        // TODO Auto-generated constructor stub     
    }

    public Stock(int stockId, int employee, int item, int addQty, 
               double addedPrice, int supplier, String update, String reason) {
        super();        
        this.stockId = stockId;
        this.employee = employee;
        this.item = item;
        this.addQty = addQty;
        this.addedPrice = addedPrice;
        this.supplier = supplier;
        this.update = update;
        this.reason = reason;   
    } 

    //getter setter

}

सेवा

public interface StockLogService {

  void saveAStock(Stock addedStock);

} 
@Service 
public class StockLogServiceImp implements StockLogService {

  @Resource     
  private StockLogRepository repository;

  @Override     
  public void saveAStock(Stock addedStock) {
    repository.saveAndFlush(addedStock);
  } 
}

भंडार

public interface StockLogRepository extends JpaRepository<Stock, String> {   
}

नियंत्रक

@Controller 
public class CommonController {         
    @Autowired
    SupplierService supService;     
    @Autowired  
    StockLogService stockService;   
    Date todayDate = Calendar.getInstance().getTime();

    @RequestMapping(value="testing1")   
    public ModelAndView viewStock1() {      
        ModelAndView moView = new ModelAndView("testing1");             
        //Give empty stock object for ("/add")      
        moView.addObject("newStockCommand", new Stock());           
        return moView;  
    }   
    @RequestMapping(value="testing2")   
    public ModelAndView viewStock2(@ModelAttribute ("newStockCommand") Stock newStockCommand) {         
        ModelAndView moView = new ModelAndView("testing2");
        moView.addObject("addedStock", newStockCommand);
        stockService.saveAStock(newStockCommand);       
        return moView;  
     } 
}

जेएसपी

जेएसपी स्क्रीनशॉट

1
Yin 28 पद 2017, 08:41

2 जवाब

सबसे बढ़िया उत्तर

update एक कीवर्ड है। अपनी तालिका परिभाषा में कॉलम का नाम बदलने का प्रयास करें

update varchar(45) DEFAULT NULL
1
StanislavL 28 पद 2017, 09:17

Com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException - यह अपवाद दिखाता है कि सिंटैक्स के साथ कुछ समस्या है। समस्या जानने के लिए आप सीधे अपने सिंटैक्स में जा सकते हैं। कॉलम नाम "अपडेट" एक कीवर्ड है और इसका उपयोग डेटाबेस में किसी भी रिकॉर्ड को अपडेट करने के लिए क्वेरी लिखने के लिए किया जा रहा है। तो, यह अपवाद फेंक रहा है। हम किसी भी RDBMS में कॉलम नाम के रूप में कीवर्ड का उपयोग नहीं कर सकते हैं।

0
kavita 28 पद 2017, 09:51