码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2016-05-13 00:15:51      阅读:428      评论:0      收藏:0      [点我收藏+]

标签:


背景: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、遇到问题不气馁,是良好的生活态度。






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

标签:

原文地址:http://blog.csdn.net/helijie92902/article/details/51347627

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!