开发购物车模块中遇到的问题

在开发购物车模块时遇到了商品无法添加、执行SQL报错和session问题。商品未添加的原因在于Dao层的处理,已通过添加判断解决。SQL报错是由于ID字段长度不足,通过移除'-'字符解决。session问题源自我之前项目中的session扫描器,导致session被意外销毁,解决方法是使User实现Serializable接口。编程过程中发现并解决问题的过程充满了挑战和乐趣。
摘要由CSDN通过智能技术生成

无法添加商品

  • 需求:点击商品详细页面中的“我要购买”按钮,servlet获得请求,根据session中的uid和hidden的book id来搜索数据库,若找到记录,那么在原有的记录上添加商品数量;否则新增条目。

  • 问题:商品没有添加,数量也没有增加

  • 原因:问题出在Dao中的toCartItem(Map map)方法,我没有判断map是否为空就直接使用mapToBean方法来封装数据;没有考虑到如果查询结果为null,调用这个方法仍然会返回一个尽管内容为空,但是却不等于null的实体对象;这就导致在service层中总是判断购物车中已经有了相应商品,然而因为bid和uid都为空,所以数量也没有增加的情况。

  • 解决方法:在toCartItem中添加一条if语句判断map是否为null,若是则直接return null;

  • 评价:很有意义的一次犯错。

执行sql报错,提示data too long for column…

  • 情景:id列无法插入数据

  • 原因: 调用UUID.randomUUID().toString()方法时,生成的字符串中含有’-‘字符,这样就超出了32个字符。而id列定义为varchar(32)

  • 解决办法: UUID.randomUUID().toString().replace(“-“, “”)

session中遇到的奇怪问题

  • 情景

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值