代码行数偏少的我遇到实战,很多小问题在我看来都会被放大数十倍,举步维艰,但是结果却是欣喜的。

早上在写插入语句的时候,发现前端给了操作成功,前端的表单数据也都传递过去可是却不能写入数据库中,对于黑窗口玩家来说无疑变得手足无措,不知道怎么去寻找错误,询问了学姐,学姐也一步步给我讲解了断点调试,修改bug。

这里要说几个bug,一个不算是bug,但是之前碰到过使用了loadingservice服务,没有引入这个js因此导致上一篇文章如此的错误,故而将其注释掉,学姐帮我引入了这个服务。

之后断点这里是我一窍不通的,之前见到同学行云流水的调试,自己也暗暗羡慕不已,学姐也给我操作了一次,发现断点到service层的实现方法里用了一个DAO层的方法,但是DAO层却只有定义,没有在map层里写这个方法的sql操作,暂时注释之后,继续断点寻找bug,慢慢F8下来,发现了

当 IDENTITY_INSERT 设置为 OFF 时,不能为表中的标识列插入显式值

我们百度之后结果都指向了我在插入语句过程中视图给自增标识键位赋值,这是不允许的,查看前端后端,在map层里发现了这个问题,map,model层用的mybatis的一个代码生成工具,他已经替我们写好了一个insert因此我需要把里头的id插入去掉即可解决这个问题。

不过原来之前的项目是使用底层封装的一个insert方法,因为下划线,导致代码生成工具无法产生映射,所以insert方法在生成model层的时候命名不正确导致无法使用,而mybatis又重写了insert方法所以在调用时总是调用mybatis的insert方法,故而每次使用都要删去insert的自增ID的插入。