Data truncation: Incorrect datetime value: '' for column 'pdate' at row 1
原创
©著作权归作者所有:来自51CTO博客作者hoho_12的原创作品,请联系作者获取转载授权,否则将追究法律责任
在调试项目的时候,报了一个错:
Caused by: java.sql.BatchUpdateException: Data truncation: Incorrect datetime value: '' for column 'pdate' at row 1
项目是从别的地方拷过来的。
场景是这样的:在增加一个商品和编辑一个商品后,点击保存就报了如上错误。
很明显是pdate这个值为空。
于是在action中找到这个保存的方法,如下:
// 修改商品的方法
public String update() throws IOException {
// 将信息修改到数据库
product.setPdate(new Date());
// 上传:
if(upload != null ){
String delPath = ServletActionContext.getServletContext().getRealPath(
"/" + product.getImage());
File file = new File(delPath);
file.delete();
// 获得上传图片的服务器端路径.
String path = ServletActionContext.getServletContext().getRealPath(
"/products");
// 创建文件类型对象:
File diskFile = new File(path + "//" + uploadFileName);
// 文件上传:
FileUtils.copyFile(upload, diskFile);
product.setImage("products/" + uploadFileName);
}
productService.update(product);
// 页面跳转
return "updateSuccess";
}
pdate属性有默认值,打断点也有值。
这就奇怪了,于是又在网上查了一波,换个最新版的mysql连接jar包,可以解决这个问题。
原先的jar包是mysql-connector-java-5.0.4-bin.jar
换成mysql-connector-java-5.1.35-bin.jar包就好了。
不过有一个问题很奇怪,为什么myeclipse中没有尾巴的断点打了没用,那种带小尾巴的断点才好使,这个问题一直困扰着我。