毕业设计答辩技巧&降重技巧

大家答辩都是第一次,作为一个打交道多次的''老鸟'',从我的角度,给大家说一下常见的问题和解决之道

新增二期 Java答辩突击视频  欢迎指正学习

目录

看之前首先明确2个问题

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

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

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

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

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

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

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

问题9:论文降重技巧?



看之前首先明确2个问题

1.我的项目架构是什么?SSM ? SSH ? JSP ? JavaWeb ?

2.项目架构是怎么在我的毕设代码中体现的?

问题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,表结构分别如下

IDNAME
1小何
IDNAME
1001王老师
1002李老师
IDNAMESTUDENT_IDTEACHER_ID
101MySQL数据库11001
102通信原理11002

上面的学生表,教师表都没有需要说明的地方,关键在于第三张课程表,有两个外键外联,一个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,分别对应下面的访问路径

方式一:

<form action="login.action">

方式二:

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.部分实在无法修改的地方,把文字改成公式添加进去

     答辩过程没有大家想象的那么恐怖,我目前接手的这些,全部一次性过答辩,我们要做的就是:找到代码。找到代码就解决了一大半问题。

       最后祝大家答辩顺利,工作顺利,诸事顺心。 

  • 170
    点赞
  • 960
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 22
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

油炸小波

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值