原项目视频:
https://www.bilibili.com/video/BV13a411q753/
下面是遇到的有关的bug
(这里只包括了基础篇,没有引入redis那些。所以都是前面103集遇到的bug)
静态资源映射失败
一般出错了都是细节出现了问题
- 这里是包建立错位置了 -静态资源映射一直没有成功
- 解决方法
- 显然成功了
Could not autowire. No beans of 'EmployeeService' type found.
- 错误页面
-
解决方法
- 因此我在的service类上加了@Service注解就好了
-
成功解决
Field employeeService in com.itheima.reggie.controller.EmployeeController required a bean of type 'com.itheima.reggie.service.EmployeeService' that could not be found.
-
解决方法
- impl类加注解@Service
-
成功解决
拦截器,对于没有登录的拦截,失败
- 问题
解决方法
- 让每一个都有return返回,这样可以结束方法
JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@5653a1f8] will not be managed by Spring
- 解决方法
当我输入http://localhost:8901/backend/index.html 的时候,前端不会自动跳转到登录页面
-
原因(前端这里写的notlogin!
-
解决方法
- 后端那里改回NOTLOGIN
-
错误
-
解决方法
- 弄了个异常处理方法。全局异常处理
- 捕获成功
js对long型数据的处理丢失精度
-
解决思路
-
解决方法
公共字段的那个类不能通过httpservlet 获取用户的 session
- 解决方法
- 思路
- 验证
- 验证
- 具体实现
- 思路
Cause: java.sql.SQLSyntaxErrorException: Unknown column 'is_deleted' in 'field list'
; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column 'is_deleted' in 'field list'] with root cause
java.sql.SQLSyntaxErrorException: Unknown column 'is_deleted' in 'field list'
-
原因
-
问题描述
我们需要在实体类中新增一个属性用于临时存放数据,便于一对一或者一对多的关联查询,而问题是他并非数据库中的字段所以造成了以下错误详情:
-
原因:java.sql.SQLSyntaxErrorException:“字段列表”中的未知列“is_deleted”
; 错误的SQL语法[];嵌套异常是java.sql.SQLSyntaxErrorException:“字段列表”]中的未知列“is_deleted”,具有根本原因
java.sql.SQLSyntaxErrorException:“字段列表”中的未知列“is_deleted”
-
-
解决方法1
- 查询成功!
-
解决方法2(推荐)加入table注解让这个课识别。
- 也成功了
页面上显示删除成功但实际上并没有实现删除
也就是逻辑上删除了,物理上没删除
-
问题
-
查找原因
- 删除方法
- 当点击前端删除按钮时对应绑定的函数代码
- 请求url路径时对应的参数
- 删除方法
-
发现原因,要请求的参数时ids不是id。故只需要把后端代码的id改成ids即可
-
解决
- 把原本的这个
- 改成
-
重新启动服务器(成功)
Caused by: java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'categoryController' method
-
错误原因
- 这种错误产生的原因就是同一个请求映射到了俩个方法上,所以导致报错
- 显然这两个映射不明确,没有区分,修改其中一个即可
-
解决方法
- 将@RequestMapping(value="xxx")修改一下即可,找到重名的请求修改其中一个,重启访问访问则正常!
-
运行结果(成功)
前端405报错
后端显示这个
Resolved [org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'PUT' not supported]
discard long time none received connection. , jdbcUrl : jdbc:m....
- 错误原因
- 前端请求的是put方法。
- 但是我后端写成了post
- 解决
2022-11-16 21:10:14.523 ERROR 30880 --- [nio-8901-exec-7] c.i.r.common.GlobalExceptionHandler : Duplicate entry '可乐鸡翅' for key 'dish.idx_dish_name'
Transaction synchronization deregistering SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@62da21c0]
Transaction synchronization closing SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@62da21c0]
2022-11-16 21:10:14.533 ERROR 30880 --- [nio-8901-exec-7] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception
org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only
- 问题,什么莫名其妙的数据回滚
- 解决
- 这是因为加了事务控制但是并没有返回成功的值。所以加上即可
'getSetmealId()' in 'com.itheima.reggie.entity.SetmealDish' cannot be applied to '(java.lang.Long)'
- 解决,其实是打错了
- 应该是item.setSetmealId
套餐正在售卖中不回显!就一直报错回滚!
-
原因
- @Transactional 这个注解乱加,最后我只留下了4个确实需要用的就可以成功了!
-
解决方法(删掉无效的)