购物车添加商品

购物车添加商品

相关截图:

https://img1.sycdn.imooc.com//climg/62286ce8098c5fe412070646.jpg

老师您好:

       购物车每次添加数量为1的时候就报错,但是参数count改成比1大的时候就能添加成功

报错如下:

Caused by: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry '1' for key 'imooc_mall_cart.PRIMARY'

at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:117) ~[mysql-connector-java-8.0.18.jar:8.0.18]

at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) ~[mysql-connector-java-8.0.18.jar:8.0.18]

at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-java-8.0.18.jar:8.0.18]

at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953) ~[mysql-connector-java-8.0.18.jar:8.0.18]

at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:370) ~[mysql-connector-java-8.0.18.jar:8.0.18]

at com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44) ~[HikariCP-3.4.1.jar:?]

at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.execute(HikariProxyPreparedStatement.java) ~[HikariCP-3.4.1.jar:?]

at sun.reflect.GeneratedMethodAccessor109.invoke(Unknown Source) ~[?:?]

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_202]

at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_202]

at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59) ~[mybatis-3.4.6.jar:3.4.6]

at com.sun.proxy.$Proxy173.execute(Unknown Source) ~[?:?]

at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:46) ~[mybatis-3.4.6.jar:3.4.6]

at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74) ~[mybatis-3.4.6.jar:3.4.6]

at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50) ~[mybatis-3.4.6.jar:3.4.6]

at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117) ~[mybatis-3.4.6.jar:3.4.6]

at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76) ~[mybatis-3.4.6.jar:3.4.6]

at sun.reflect.GeneratedMethodAccessor144.invoke(Unknown Source) ~[?:?]

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_202]

at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_202]

at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63) ~[mybatis-3.4.6.jar:3.4.6]

at com.sun.proxy.$Proxy171.update(Unknown Source) ~[?:?]

at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:198) ~[mybatis-3.4.6.jar:3.4.6]

at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:185) ~[mybatis-3.4.6.jar:3.4.6]

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_202]

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_202]

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_202]

at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_202]

at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:433) ~[mybatis-spring-1.3.2.jar:1.3.2]

... 87 more


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小脸 2022-03-09 18:30:29

同学你好,测试运行课程源码并未复现这个问题,运行效果如下所示:

https://img1.sycdn.imooc.com//climg/62287cd5095f53d608410468.jpg

出现上述报错猜测是同学数据库中imooc_mall_cart表的主键有重复,建议同学重新将该表的所有数据都删除,然后将主键取消,再重新选择主键,最后重新运行项目添加商品再试试

https://img1.sycdn.imooc.com//climg/62287db909fdb13213690777.jpg

祝学习愉快~



  • 提问者 慕工程3164992 #1

    老师您好:按照你说的方法试了但是好像删除了主键保存不了,还是以下报错

    https://img1.sycdn.imooc.com//climg/62295eef09b8d0cb12130537.jpg

    ### Cause: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry '1' for key 'imooc_mall_cart.PRIMARY'

    ; Duplicate entry '1' for key 'imooc_mall_cart.PRIMARY'; nested exception is java.sql.SQLIntegrityConstraintViolationException: Duplicate entry '1' for key 'imooc_mall_cart.PRIMARY'



    2022-03-10 10:15:29
  • 好帮手慕小脸 回复 提问者 慕工程3164992 #2

    同学你好,根据报错信息来看:表格定义不正确;只能有一个自动列,必须将其定义为键,猜测同学在修改表时,创建了两个自增的字段和主键,建议同学检查一下~

    如果还不行,建议同学直接将数据库中所有表都删除,重新导入sql文件再试试

    祝学习愉快~

    2022-03-10 13:22:32
  • 提问者 慕工程3164992 回复 好帮手慕小脸 #3

    老师您好:根据您的要求我又重新导入sql还是报以前的错误Duplicate entry '1' for key 'imooc_mall_cart.PRIMARY',例如:我添加23号商品数量一个(第一次添加时可以成功),第二次再添加27号商品数量1个时就会报错。网上查的原因:原因:由于数据库字段的惟一性约束,不允许重名的

    字段值存在,https://img1.sycdn.imooc.com//climg/622abb560986114509810474.jpg


    https://img1.sycdn.imooc.com//climg/622abb9d096c752009600505.jpg


    2022-03-11 11:02:45
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码