【SSH网上商城】incorrect datetime value:"for column 'pdate' at row 1"
2017-03-31 14:26
519 查看
前言:
在学习网上商城的时候,遇到了一个问题,向数据库中插入数据时,报错,无法正确插入,当时不知道原因出在什么地方,刚开始总以为是代码那里写的和视频里的不一样,一遍遍回看,也没发现什么问题,后来又看数据库,也不知道哪里错了,索性重新新建了一遍数据库,这时数据竟然插入成功,当时觉得是数据库那里设置的不正确,呜呜~~~~(>_<)~~~~“好景不常在”这个问题又一次出现,这次要好好看看什么原因。错误提示:
ERROR JDBCExceptionReporter:234 - Data truncation: Incorrectdatetime value: '' for column 'pdate' at row 1org.springframework.dao.DataIntegrityViolationException:could not insert: [cn.itcast.shop.product.vo.Product]; SQL [insert into product(pname, market_price, shop_price, image, pdesc, is_hot, pdate, csid) values (?,?, ?, ?, ?, ?, ?, ?)]; nested exception isorg.hibernate.exception.DataException:
could not insert:[cn.itcast.shop.product.vo.Product]
解决办法:
对pdate使用SimpleDateFormat进行转换,转换成和数据库一致的格式:yyyy-MM-dd hh:mm:ss源代码:
<strong>// 查询所有的商品: public String findAll() { PageBean<Product> pageBean = productService.findByPage(page); // 将PageBean数据存入到值栈中. ActionContext.getContext().getValueStack().set("pageBean", pageBean); // 页面跳转 return "findAll"; } // 跳转到添加页面的方法: public String addPage() { // 查询所有的二级分类: List<CategorySecond> csList = categorySecondService.findAll(); // 将二级分类的数据显示到页面上 ActionContext.getContext().getValueStack().set("csList", csList); // 页面跳转 return "addPageSuccess"; } // 保存商品的方法: public String save() throws IOException { // 将提交的数据添加到数据库中. product.setPdate(new Date()); if(upload != null){ // 将商品图片上传到服务器上. // 获得上传图片的服务器端路径. String path = ServletActionContext.getServletContext().getRealPath( "/products"); // 创建文件类型对象: File diskFile = new File(path + "//" + uploadFileName); // 文件上传: FileUtils.copyFile(upload, diskFile); product.setImage("products/" + uploadFileName); } productService.save(product); return "saveSuccess"; } </strong>
修改后:
<strong>// 保存商品的方法: public String save() throws IOException, ParseException { // 将提交的数据添加到数据库中. Date date=new Date(); SimpleDateFormat temp=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); String date2=temp.format(date); Date date3=temp.parse(date2); product.setPdate(date3); if(upload != null){ // 将商品图片上传到服务器上. // 获得上传图片的服务器端路径. String path = ServletActionContext.getServletContext().getRealPath( "/products"); // 创建文件类型对象: File diskFile = new File(path + "//" + uploadFileName); // 文件上传: FileUtils.copyFile(upload, diskFile); product.setImage("products/" + uploadFileName); } productService.save(product); return "saveSuccess"; }</strong>
总结:
解决办法可能不止一种,不管怎样,站在巨人的肩膀上,不断探索,在探索尝试中成长。相关文章推荐
- 【SSH网上商城】Incorrect datetime value: '' for column 'pdate' at row 1
- python mysql 1366, u"Incorrect string value: '\\xF0\\x9F\\x98\\x8A' for column 'content' at row 1"
- 【SSH网上商城】Incorrect datetime value: '' for column 'ordertime' at row 1
- Data truncation: Incorrect datetime value: '' for column 'pdate' at row 1
- Incorrect datetime value: '' for column 'log_time' at row 1
- 时间入库问题:Incorrect datetime value: '' for column 'createTime' at row 1
- 时间入库问题:Incorrect datetime value: '' for column 'createTime' at row 1
- Data truncation: Incorrect datetime value: '' for column 'create_date' at row 1
- 时间那些事儿---Incorrect datetime value: '' for column 'CREATE_DATE' at row 1
- 关于解决Incorrect datetime value: '' for column '' at row 1的问题
- Data truncation: Incorrect datetime value: '' for column 'xxxx' at row
- # 1292 - Incorrect datetime value: '20' for column 'ptime' at row 1
- ERROR 1292 (22007): Incorrect datetime value: '' for column 'end_date' at row 1
- Data truncation: Incorrect datetime value: '' for column 'time' at row 1
- Incorrect datetime value: '0000-00-00 00:00:00' for column
- Incorrect string value: '\xF0\x9F\x98\x92' for column 'NIKENAME' at row 1;
- 用Mysql5.6插入出现时间问题Incorrect datetime value: '' for column 'createtime'
- [Err] 1366 - Incorrect string value: '\xE8\x81\x94\xE6\x83\xB3' for column 'pname' at row 1解决方法
- node.js插入数据到MySQL时遇到 Incorrect string value: '' for column '' at row 1 ”
- 中文写入数据库乱码及Incorrect string value: '\xF0\x9F...' for column 'XXX' at row 1解决