毕业设计答辩技巧

问题1:你这个项目用到了SSM/SSH/JSP/JavaWeb,是怎么体现的?

在解答的过程中,请参考我给的讲解视频,流程遵循:页面--》Controller/Action--》Service--》DAO--》数据库,这期间数据的传输,数据的判断,数据的返送,返送后页面的返显,要着重强调。

以SSM的登陆流程为例

1.login.jsp通过form表单,提交用户名:username,密码:password,对应的Action为:login.action/login.do

2.通过SpringMVC框架的@RequestMapping注解匹配,从JSP进入Controller/Action中,此时username和password也从页面传输到了Controller/Action

3.Controller/Action会调用Service层[业务逻辑处理层],此时数据username和password从Controller/Action传输到了Service

4.Service继而调用DAO[数据库交互,方法定义层],数据再一次从Service传输到DAO

5.DAO和数据库进行交互,将数据融入sql语句中,执行查询

6.数据库返回查询结果到DAO

7.DAO返回查询结果到Service

8.Service返回查询结果到Controller/Action

9.Controller/Action返回查询结果到login.jsp,页面根据返回的结果进行判断,登陆成功还是失败

10.总结:数据是一直在传输的,为什么设计这么多层?可以理解为一种设计模式,每一层做自己对应的业务,提高效率,逻辑分明。

问题2:你在进行数据库设计的时候,有什么技巧吗?

1.几个关键词不懂的先去查一下,避免老师问的时候不知道:数据字典,三段式,主键,外键,自增主键,E-R图

2.数据库设计一般会遵循三段式

3.数据库一般会采取外键关联

4.数据库设计一般不采取强制外键关联。这句话和上面不矛盾哦,我会在下面的例子中详细解释

举例

学生表T_STUDENT,教师表T_TEACHER,课程表T_COURCE,表结构分别如下
ID	NAME
1	小何
ID	NAME
1001	王老师
1002	李老师
ID	NAME	STUDENT_ID	TEACHER_ID
101	MySQL数据库	1	1001
102	通信原理	1	1002

上面的学生表,教师表都没有需要说明的地方,关键在于第三张课程表,有两个外键外联,一个STUDENT_ID,关联T_STUDENT里的ID,一个TEACHER_ID关联T_TEACHER里的ID,也就是说:T_COURCE中的STUDENT_ID和TEACHER_ID是和T_STUDENT,T_TEACHER的主键一致的,但并不采取外键关联。外键关联会产生一种弊端:数据不存在时,后台数据库会报错,如我们在新增一条课程信息时:“103,电磁场与电磁波,1,1009”,这个1009不存在,就会报错,导致系统崩溃,不能进行下一次使用。

解决方案:新增之前,针对关联得ID进行一次查找,如上数据,分别针对ID=1,ID=1009去T_STUDENT,T_TEACHER查找一次,没有就在前台页面提示:"无对应的ID信息,请核对后再上传"。

问题3:给我找到XX模块的代码,并讲解一下[XX流程是怎么实现的]?

这个问题,对于学习不深,了解不多的我们,应该是最难的一个问题,还是遵守发给大家的讲解视频中找代码的思路:

1.在浏览器"右键检查"我们需要审查的元素,看它是在一个form里,还是Ajax,还是Href,分别对应下面的访问路径

    方式一:
     
    
方式二: ajax{ url:/login.action } 方式三: href="login.action" 2.在Eclipse中,ctrl + H,选择File Search,粘贴上面的login【演示不同的模块,可能是不同的*.action,复制粘贴*即可】在Containing text里,File name patterns中输入 * ,点击右下角Search 3.基于以上,会找到一个Controller/Action里的代码,此时便从前台页面进入了后台接口代码 4.进入Controller/Action里的Service 5.进入Service里的Dao 6.通过Dao找到关联的数据库语句,有可能是hql(SSH),有可能是xml(SSM),有可能就是sql(原生语句) 7.以上就完成了一次代码的查找 8.总结:右键检查页面--》查找代码--》Controller/Action--》Service--》DAO--》DB

问题4:你觉得这个系统还有什么需要完善的地方?

一般问这个问题的时候,答辩基本结束,具体可参考下面几个解答

1.如果我们使用的是JSP,可说:后期页面计划采用静态化模板freemarker,节省服务器资源和压力

2.大部分项目都只是本地安装,可考虑内网穿透或部署到云服务器,让所有人都可以访问我们的项目

3.项目服务器单一,只有一台Tomcat,可考虑针对Tomcat搭建简单的平行集群,增强系统稳定性

4.系统并发能力有待提升,后期进一步学习中,考虑使用Nginx进行项目的负载均衡配置

问题6:整个项目你的工作流程是怎么进行的?

这个问题,傲视一般是想看看这个毕设到底是不是我们做的,一般项目的搭建遵循下面的步骤:

1.设计数据库表,遵循三段式,设计出数据字典后,进行数据库,表的创建

2.搭建项目架构[SSM,SSH,Maven]

3.创建POJO/Model

4.创建DAO/Mapper,并进行测试

5.创建Service,并进行测试

6.创建Controller/Action,并进行测试

7.创建JSP/HTML页面,并进行前后台联调

8.完成一个流程

问题7:如果讲解的过程中,遇到不会的怎么办?

不要慌张!不要慌张!不要慌张!我在平时工作中,前面写的代码,后面再看还需要再看一遍才能回想起当时的逻辑,此时我们要做的就是:右键检查,找到代码,看代码的同时,跟老师说:"这个模块是最初做的,业务逻辑我需要再看下",答辩时间很短,一般这个时候老师就会下一个问题,没有下一个问题,我们就看看代码,结合场景,说出代码本身的业务逻辑。

如:购物车,其业务逻辑一般就是将对应的

1.商品添加到购物车,商品数量-1,此时涉及商品表的update,购物车表新增一条记录,设计购物车表的insert,

2.当从购物车变成订单状态时,购物车记录清空,涉及购物车的delete,以及订单表的insert

问题8:论文降重了多少次?

参考我自己的,初稿一次,终稿20几次

问题9:论文降重技巧?

一般查重是8-16字重复,判断为重复,即标红。我们要做的就是打断连续,或重新组织语言

1.重复率大片标红的地方,添加参考文献的角标,被标注的一句话不会被查重,重复率多就都是逗号

如:XX,XX,XX,XX,XX[1],则整个XX,XX,XX,XX,XX都不会查重,

但是:XX,XX。XX,XX。XX[1],只有最后一个XX不会查重

2.部分实在无法修改的地方,把文字改成公式添加进去

————————————————
版权声明:本文为CSDN博主「油炸小波」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_38964895/article/details/88537042

你可能感兴趣的:(课程设计,java,maven,spring,spring,boot,spring,cloud)