您的位置:首页 > 编程语言 > Java开发

Java大牛养成记(6)——将订单提交到数据库出错(Could not insert)

2016-05-08 21:57 579 查看
背景:SSH视频真是个强大的视频,里面涉及的知识广,符合当今的网商趋势。视频里面的老师思路清晰,分析需求也相当了得。当然,跟着这个视频的思路走,自己很容易理解里面的内容。但是跟着走也能出错,我也是醉了,下面介绍一下我的奇葩经历。

一、问题出世

将订单提交到数据库的时候出现了下面的错误,说什么不能将数据插入到数据库中,刚开始的时候以为是自己写错了,反复查询多遍,但是从vo到dao到service到action,在就是JSP页面、applicationContext.xml和Struts.xml都没有错,到底是怎么回事呢???




二、解决方法

    经过和“先人”们交流,明白,不能插入到数据库的原因是:在订单生成时,其时间戳不能正确生成。后来果断换掉原来的代码,然后就成功啦,提交订单的时候同时插入到两张表(order表和orderitem表)中,棒棒哒!


1、在OrderAction.java中写一个获取时间的方法

//获取时间
public static Date getNowDate() throws java.text.ParseException  {
Date currentTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = formatter.format(currentTime);
Date date1=formatter.parse(dateString);
return date1;
}


2、在OrderAction.java中调用获取时间的方法,获得订单生成时的当前时间

//生成订单的方法
public String save() throws ParseException{
//1、保存数据到数据库
//订单数据的补全操作
order.setOrdertime(getNowDate());
order.setState(1); //1:待付款   2:已经付款,但是没有发货   3:已经发货,没有确认收货  4:交易完成

//总计的数据是购物车中信息
Cart cart =(Cart) ServletActionContext.getRequest().getSession().getAttribute("cart");
if(cart == null){
this.addActionError("亲,您还没有购物,请先去购物!");
return "msg";
}
order.setTotal(cart.getTotal());

//设置订单中的订单项
for (CartItem cartItem : cart.getCartItems()){
OrderItem orderItem = new OrderItem();
orderItem.setCount(cartItem.getCount());
orderItem.setSubtotal(cartItem.getSubtotal());
orderItem.setProduct(cartItem.getProduct());
orderItem.setOrder(order);

order.getOrderItems().add(orderItem);
}

//订单所属的用户
User existUser = (User)ServletActionContext.getRequest().getSession().getAttribute("existUser");
if(existUser == null){
this.addActionError("亲,您还没有登录,请先去登录!");
return "login";
}

order.setUser(existUser);
orderService.save(order);

//2、将订单对象显示到页面上
//通过值栈的方式显示:因为Order显示的对象是模型驱动的对象
//清空购物车
cart.clearCart();
return "saveSuccess";
}


三、提交效果
提交代码后查看数据库,哈哈

,订单数据妥妥的在数据库中。



四、学习心得

1、有时候也许不是你的错,但是你可以为遇到的错误找到合理的解决方案。

2、沟通的重要性,没有事情是沟通解决不了的,解决问题的关键性因素就在与沟通。

3、遇到问题不气馁,是良好的生活态度。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: