【SSH网上商城】Incorrect datetime value: '' for column 'pdate' at row 1

2024-08-28 14:38

本文主要是介绍【SSH网上商城】Incorrect datetime value: '' for column 'pdate' at row 1,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【项目说明】

在做网上商城的项目的时候,向数据库中插入数据插不进去,显示pdate(pdate为上传商品的日期)的错误,查看了一下数据库中的pdate格式为2014-11-02 20:18:00,需要引用的也都引用了, 具体错误提示:

【错误提示】

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]


【解决方案】

遇到问题后查到了几种解决方案:

方法一:

在jdbc里添加“&useOldAliasMetadataBehavior=true”



添加了以后还是没有解决,排除!

方法二:

错误原因:一般是数据库表中的字段包含了数据库的关键字(保留字)
处理方法:修改数据库中和关键字产生冲突的字段名,重新映射字段名和bean中的类名

查询了一下发现没有冲突的字段名,排除!

方法三:

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());// product.setImage(image);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);// product.setImage(image);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>


将两个代码放到一块对比一下,看看输出的结果有什么不一样的:

// 保存商品的方法: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);System.out.println(date3);System.out.println(date);if (date == date3) {String a=null;}product.setPdate(date);// product.setImage(image);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";}



    从输出的结果上来看,没有什么不一样的,好在在这边添加了一句判断他们的输出结果是否一样,结果真没走这段代码,看来用肉眼是看不出来不同了。就这样解决了!出现这种情况原因还是没有想清楚,有遇到这种情况的可以一块探讨!


这篇关于【SSH网上商城】Incorrect datetime value: '' for column 'pdate' at row 1的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1115055

相关文章

git ssh key相关

step1、进入.ssh文件夹   (windows下 下载git客户端)   cd ~/.ssh(windows mkdir ~/.ssh) step2、配置name和email git config --global user.name "你的名称"git config --global user.email "你的邮箱" step3、生成key ssh-keygen

在SSH的基础上使用jquery.uploadify.js上传文件

在SSH框架的基础上,使用jquery.uploadify.js实现文件的上传,之前搞了好几天,都上传不了, 在Action那边File接收到的总是为null, 为了这个还上网搜了好多相关的信息,但都不行,最后还是搜到一篇文章帮助到我了,希望能帮助到为之困扰的人。 jsp页面的关键代码: <link rel="stylesheet" type="text/css" href="${page

Caused by: org.hibernate.MappingException: Could not determine type for: org.cgh.ssh.pojo.GoodsType,

MappingException:这个主要是类映射上的异常,Could not determine type for: org.cgh.ssh.pojo.GoodsType,这句话表示GoodsType这个类没有被映射到

python内置模块datetime.time类详细介绍

​​​​​​​Python的datetime模块是一个强大的日期和时间处理库,它提供了多个类来处理日期和时间。主要包括几个功能类datetime.date、datetime.time、datetime.datetime、datetime.timedelta,datetime.timezone等。 ----------动动小手,非常感谢各位的点赞收藏和关注。----------- 使用datet

SSH连接虚拟机中的Ubuntu 12.0.4

摘要:主要是解决不能使用ssh远程Ubuntu的问题、使用的远程工具是putty、也可以使用xshell、ubunut12.0.4是装在虚拟机中的、不过这个应该没有什么影响。 一:问题的出现 前两天使用VMware装了一个ubuntu12.0.4之后、因为常常使用命令行、又喜欢在虚拟机与实体机中切来切去、感觉很不方便、就想在xp中远程ubuntu、遇到了点小意外、经过一会调试解决成功、把

INDEX+SMALL+IF+ROW函数组合使用解…

很多人在Excel中用函数公式做查询的时候,都必然会遇到的一个大问题,那就是一对多的查找/查询公式应该怎么写?大多数人都是从VLOOKUP、INDEX+MATCH中入门的,纵然你把全部的多条件查找方法都学会了而且运用娴熟,如VLOOKUP和&、SUMPRODUCT、LOOKUP(1,0/....,但仍然只能对这种一对多的查询望洋兴叹。   这里讲的INDEX+SMALL+IF+ROW的函数组合,

【20240907问题记录(未解决)】Conda环境问题:SSH与本地环境变量不一致

Conda 允许用户在同一系统上创建多个独立的Python环境。然而,最近遇到了一个奇怪的问题:通过SSH连接到远程Ubuntu机器时,Conda环境变量的行为与本地机器不一致。以下是具体遇到的问题: 1. 问题描述 在本地Ubuntu机器上,我的conda的python版本是3.6,而pip版本可以通过命令 pip --version 查看,显示为: pip 21.3.1 from /ho

ssh版本升级导致连接失败

公司系统使用的是第三方ssh插件jsch-0.1.39.jar,之前采集正常的,但是厂家服务器ssh升级成2.0版本,然后程序就报错,异常如下: com.jcraft.jsch.JSchException: Algorithm negotiation failat com.jcraft.jsch.Session.receive_kexinit(Session.java:510)at com.

java的Timestamp时间插入mysql的datetime字段是0000-00-00 00:00:00

Mysql 与 java 的时间类型             MySql的时间类型有              Java 中与之对应的时间类型                  date                                               java.sql.Date               Datetime

在项目SSH整合时,启动测试时报的警告!

一、tomcat 运行过程中提示: 22:11:07,082 [main] WARN  DTDEntityResolver : recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer