文章目录
- 做者提供远程调试服务
- 做者提供毕业设计模拟答辩视频
- 联系方式VX: zhixing480
问题1:你这个项目用到了SSM/SSH/JSP/JavaWeb,是怎么体现的?
在解答的过程当中,流程遵循:页面–>Controller/Action–>Service–>DAO–>数据库,这期间数据的传输,数据的判断,数据的返送,返送后页面的返显,要着重强调。javascript
以SSM的登录流程为例html
-
1.login.jsp经过form表单,提交用户名:username,密码:password,对应的Action为:login.action/login.dojava
-
2.经过SpringMVC框架的@RequestMapping注解匹配,从JSP进入Controller/Action中,此时username和password也从页面传输到了Controller/Actionajax
-
3.Controller/Action会调用Service层[业务逻辑处理层],此时数据username和password从Controller/Action传输到了Servicesql
-
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,分别对应下面的访问路径
方式一:
<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进行项目的负载均衡配置
问题5:整个项目你的工做流程是怎么进行的?
这个问题,傲视通常是想看看这个毕设究竟是不是咱们作的,通常项目的搭建遵循下面的步骤:
-
1.设计数据库表,遵循三段式,设计出数据字典后,进行数据库,表的建立
-
2.搭建项目架构[SSM,SSH,Maven]
-
3.建立POJO/Model
-
4.建立DAO/Mapper,并进行测试
-
5.建立Service,并进行测试
-
6.建立Controller/Action,并进行测试
-
7.建立JSP/HTML页面,并进行先后台联调
-
8.完成一个流程
问题6:若是讲解的过程当中,遇到不会的怎么办?
不要慌张!不要慌张!不要慌张!我在平时工做中,前面写的代码,后面再看还须要再看一遍才能回想起当时的逻辑,此时咱们要作的就是:右键检查,找到代码,看代码的同时,跟老师说:“这个模块是最初作的,业务逻辑我须要再看下”,答辩时间很短,通常这个时候老师就会下一个问题,没有下一个问题,咱们就看看代码,结合场景,说出代码自己的业务逻辑。
如:购物车,其业务逻辑通常就是将对应的
-
1.商品添加到购物车,商品数量-1,此时涉及商品表的update,购物车表新增一条记录,设计购物车表的insert,
-
2.当从购物车变成订单状态时,购物车记录清空,涉及购物车的delete,以及订单表的insert
问题7:论文降重了多少次?
参考我本身的,初稿一次,终稿20几回
问题8:论文降重技巧?
通常查重是8-16字重复,判断为重复,即标红。咱们要作的就是打断连续,或从新组织语言
- 1.重复率大片标红的地方,添加参考文献的角标,被标注的一句话不会被查重,重复率多就都是逗号
如:XX,XX,XX,XX,XX[1],则整个XX,XX,XX,XX,XX都不会查重,
可是:XX,XX。XX,XX。XX[1],只有最后一个XX不会查重
-
2.部分实在没法修改的地方,把文字改为公式添加进去
答辩过程没有你们想象的那么恐怖,我目前接手的这些,所有一次性过答辩,咱们要作的就是:找到代码。找到代码就解决了一大半问题。
最后祝你们答辩顺利,工做顺利,诸事顺心。