采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
ShopServiceImpl里添加店铺没加到数据库(但effectedNum是1),然后更新图片地址失败了因为数据库没有找到那个shopId。无法更新然后回滚。
### Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'area_id=2
where shop_id=14' at line 12
老师就是我第一步insertShop成功了但数据没插入到数据库也没报错到了updateShop就报错了
同学好, 这个错误说的是你的update SQL写错了,有语法错误,请看看你的控制台最终输出的update语句是啥,把他放到mysql客户端去,传入对应参数执行一下,肯定是mapper写错了
老师但我之前单独的testUpdateShop()没问题。 2019-03-08 10:15:49.853 [main] DEBUG com.imooc.o2o.dao.ShopDao.updateShop - ==> Preparing: update tb_shop SET shop_name=?, shop_desc=?, shop_addr=?, phone=?, shop_img=?, last_edit_time=?, enable_status=?, advice=?, shop_category_id=? area_id=? where shop_id=? 2019-03-08 10:15:49.855 [main] DEBUG com.imooc.o2o.dao.ShopDao.updateShop - ==> Parameters: 测试1(String), test1(String), test1(String), 222(String), upload\item\shop\18\2019030810154928285.jpg(String), 2019-03-08 10:15:49.538(Timestamp), 0(Integer), 审核中(String), 1(Long), 2(Integer), 18(Long) 数据库结果是(0 row(s) affected)。因为之前的insert回滚掉了。就没id=18的那条数据了
同学好,同学可以设置下断点,一步步调试看,看看为什么会insert回滚还执行后面的update?这应该也是不合理的,在同一个事务中呢。。
我也遇到同样的问题,怎么解决。
同学好,建议新开一个问题,提供相关的错误信息,咱们来看看,应该跟这个不是同一个问题。可能同学主键没标明。需要设置断点看看插入数据库是否成功,后续是否是图片更新失败导致的回滚。
同学好,无法更新然后回滚,这个是什么意思,是说希望回滚还是。。
添加店铺没加到数据库但effectedNum是1理论上是不会出现的,除非是说你添加了,但是在处理图片的时候失败了导致回滚,所以才不会有记录,具体需要设置断点调试一下,主要把断点打在插入数据之后,看看是否报错,然后再打在处理图片即generateThumbnail这个方法里,看看是不是进入到catch了,catch里报什么错,可以拿着错误百度或者贴到这里来解决。一般知道异常就容易了
登录后可查看更多问答,登录/注册
SSM商铺V1.0,解决毕设痛点;SpringBoot商铺V2.0,满足工作刚需
1.9k 47
1.8k 41
2.5k 40
1.8k 39
1.5k 37