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中写一个获取时间的方法
2、在OrderAction.java中调用获取时间的方法,获得订单生成时的当前时间
三、提交效果
提交代码后查看数据库,哈哈
,订单数据妥妥的在数据库中。
四、学习心得
1、有时候也许不是你的错,但是你可以为遇到的错误找到合理的解决方案。
2、沟通的重要性,没有事情是沟通解决不了的,解决问题的关键性因素就在与沟通。
3、遇到问题不气馁,是良好的生活态度。
一、问题出世
将订单提交到数据库的时候出现了下面的错误,说什么不能将数据插入到数据库中,刚开始的时候以为是自己写错了,反复查询多遍,但是从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、遇到问题不气馁,是良好的生活态度。
相关文章推荐
- jdk中Annotation 使用
- 《JAVA程序设计》第十周学习总结
- Java 引用类型及常见应用
- springMVC的@ResponseBody中文乱码
- 20145223《Java程序程序设计》第10周学习总结
- 20145330《Java程序设计》第五次实验报告
- 20145213《Java程序设计》第十周学习总结
- JAVA中事物以及连接池
- [java]网上商城错误集锦
- 20145222黄亚奇《Java程序设计》第10周学习总结
- 20145239杜文超 《Java程序设计》第10周学习总结
- 浅谈Java的hashcode方法
- Hibernate4使用JPA注解方式异常:persistence.Table.indexes()[Ljavax/persistence/Index;
- #20145205 《Java程序设计》第10周学习总结
- 20145225《Java程序设计》 第10周学习总结
- 20145235 《Java程序设计》第10周学习总结
- 如何在Eclipse中生成Native类对应的JNI的.h文件
- 解决:java.sql.SQLException: 不能在 UTF8 和 UCS2 之间转换: failUTF8Conv
- 20145101《Java程序设计》第10周学习总结
- 20145317彭垚 《Java程序设计》第五次实验报告