您的位置:首页 > 产品设计 > UI/UE

【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 1

org.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>


总结:

解决办法可能不止一种,不管怎样,站在巨人的肩膀上,不断探索,在探索尝试中成长。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐