一.功能描述

一个大学生去提交自己的身份验证,如果已经验证则显示他的身份验证信息,如果没有验证则填写验证信息并显示在验证页面。

二.工具,框架,表

采用springboot+mybatis框架,服务器用tomca,数据库用MySQL,数据库管理用的Navicat.

两张表主键皆为自动递增,且没有设置外键关联

第一张大学生表:college

大学生家教web之大学生老师验证身份问题

第二张认证信息表:qualityinfo

大学生家教web之大学生老师验证身份问题

 

 

三.遇到问题以及难点

1.如何确认大学生保存的认证身份信息,与展现页面上的一致(就是大学生认证的个人信息与展现的一致)。

2.大学生身份验证信息假如已经验证,如何点击认证页面时直接展示验证信息而不至于为空。

3.当你刷新页面时,原来展现的认证信息,仍然存在。

4.如何在没有外键的情况下,由大学生表中的字段去查找认证信息表的内容。

5.如何在当点击大学生认证信息保存时,取到数据库设计主键自增的qualityId。

6.最纠结的是我发布验证信息时候,大学生还没产生qualityID,当验证完成后要将qualityinfo的qualityID传到college表中。。how to  do it !!!!

 

四.过程

1.开始想的是把信息填好保存就行,然后展示就行了

大学生家教web之大学生老师验证身份问题

 

写完过后马上运行,页面也展现出来了,数据库数据也增加了,那岂不是就完成了。下个功能走起。结果写下个功能时不下心点进认证中心,WTF???里面的信息没有了,再往里面添加数据,依然能行。WTF,每次刷新每次都要认证。。。并且在数据库中发现每次增加一个认证信息对象,college表中qualityID并没有。。。,可是我记得建立关系了,在collegeDao中

大学生家教web之大学生老师验证身份问题

2.既然新增加的qualityInfo对象在college表中qualityId并没有出现,那就自动加吧。并且要把这两个对象关联起来

大学生家教web之大学生老师验证身份问题

于是我做了一个惊为天人的操作,在Navicat里面college表的qualityID直接手动加,嘿嘿。于是再次run,发现神奇的一幕,当我点击认证的时候,我其实已经认证了(手动在college的qualityID上传了个数据),然后新认证的信息不知道给谁认证的。老衲真的6666.

3.后来为了验证信息自己还是自己的,得保证两张表中qualityId相同,于是我就将保存对象的通过查ID取出来,然后再给college加上qualityID属性,我是这样操作的

大学生家教web之大学生老师验证身份问题

好吧,我也不知道为撒我一个set方法就天真认为把它存在数据库里面了。。。

4.前方核能

我沿着上面的错误道路越走越远,甚至以为快抵达光明的道路。当时想college的qualityID有了,那么得根据它去查验证表中的属性啊,得用一个连接查询

大学生家教web之大学生老师验证身份问题

嘿嘿,终于要完成了,把数据展现一下mv.addObject("icn",college.getIcn());卧槽咋报错了,college里面咋没有getICN这个方法,我他妈明明连接查询了。想了半天,都想不通。后来就去Navicat里面直接运行SQL,发现原来两张表已经整合成一个了,college也不是当初的college了。。。哎,物是人非事事休,欲语泪先流。

5.后来想不是college中qualityID都有值了(是的我还以为set()能把值保存在数据库中),那我直接用college.qualityID然后再通过quality表查询不就完了,嗯,应该是这样的。把展示数据也传到前端,再一次点起了run,激动的搓起了小手手,顺便趁运行时间去楼下小卖部买了冰可乐。

6.回到寝室,我尼玛,又没有成功,debug一下,妈的,发现在这一步都出现问题了

大学生家教web之大学生老师验证身份问题

qualityinfo.getQualityId根本没东西,于是去百度一下,发现是表中设置主键自动增长,主键的值取不到,真的操蛋把,后来去数据库发现college.qualityId,为空想了半天,突然想起set能把数据存进数据库吗???喝锤子可乐。。

7.于是我又根据quality中的ICN(身份证)查到这个人,然后再通过update,把qualityID的值写进college里面

大学生家教web之大学生老师验证身份问题

大学生家教web之大学生老师验证身份问题

还有写更新语句时,第一次没有加上@Param运行报错,说是参数没有绑定

大学生家教web之大学生老师验证身份问题

整个控制器是这样的

大学生家教web之大学生老师验证身份问题

现在点击run,添加数据,没有问题,哈哈我终于解决了,伴随着我越来越嬴荡的笑声似乎该整一口冰可乐了

8.但是当我返回主页面点击发现没有了,苍天啊,大地啊,我还能毕业吗??找了半天我发现在college的控制器我写了个类似这样的东西

大学生家教web之大学生老师验证身份问题

没错点击那个链接直接返回那个页面,没错没有任何模型,当然模型里面也没有任何数据。。。

9.想了想我另外一个控制器里面不是已经传了数据吗??

大学生家教web之大学生老师验证身份问题

想了半天这是没有验证的用户,提交信息后展现的。另外从主页面点击进验证中心,里面返回的数据nothing。。。,而且加入点击去之前已经认证了,又怎么办,我要疯了。。。

10.后来我理了理(其实不是我,我的大学同学刘老板帮我理了理),当你点认证中心是假如你没有认证,那么肯定没法在college产生qualityID这个属性,于是用它作为判断条件,如果没有就是一个添加页面,如果存在就显示。

大学生家教web之大学生老师验证身份问题

好吧其实当时我根本没写这个

大学生家教web之大学生老师验证身份问题

后来发现点击链接进入认证中心报错的,还有这里必须new一个qualityInfo对象,不然要报空指针异常,好像是点击验证链接,那个是qualityinfo是没有的,假如这个对象没有,坑定没有qualityID这属性。

五.在自己的大起大落中这个功能终于完成了,怎么眼角挂起了泪花。哎一天一个功能都整不起,咋毕业。。。

                                                                                                

 

 

              特别鸣谢大学同学刘某

                                                                                                                    2019/4/4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相关文章: