【项目说明】
【错误提示】
ERROR JDBCExceptionReporter:234 - Data truncation: Incorrectdatetime value: '' for column 'ordertime' at row 1
org.springframework.dao.DataIntegrityViolationException:could not insert: [com.gxa.bj.order.vo.Order]; SQLinsert into orders (total, ordertime, state, name, addr, phone, uid) values(?, ?, ?, ?, ?, ?, ?) nested exception isorg.hibernate.exception.DataException: could not insert:[com.gxa.bj.order.vo.Order]
【解决方案】
遇到问题后查到了几种解决方案:
方法一:
在jdbc里添加“&useOldAliasMetadataBehavior=true”
添加了以后还是没有解决,排除!
方法二:
错误原因:一般是数据库表中的字段包含了数据库的关键字(保留字)
处理方法:修改数据库中和关键字产生冲突的字段名,重新映射字段名和bean中的类名
查询了一下发现没有冲突的字段名,排除!
方法三:
对ordertime使用SimpleDateFormat进行转换,转换成和数据库一致的格式:yyyy-MM-dd hh:mm:ss
先看原代码如下:
//生成订单方法
public String save() throws ParseException{
//保存数据到时数据库
//订单数据加入
order.setOrdertime(date3);
改后的代码:
public String save() throws 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);
order.setOrdertime(date3);
我用了第三种方法解决了问题