答辩

1、MVC设计模式是指什么,其优缺点,怎样用到在你的程序里

等你补充

2、SSM/SSH框架是指什么,其优缺点,怎样用到在你的程序里

等你补充

3、前端用到了什么技术

好的,谢谢老师的提问
  • Vue.js(通常被称为Vue)是一款现代化的JavaScript 前端框架,用于构建用户界面和单页面应用程序(SPA)。自发布以来,它迅速发展为一个流行的前端框架
  • Vue的主要特点包括:
  • 渐进式框架: Vue具有渐进式的特点,可以逐渐地应用到项目中,不需要一次性全部使用。
  • 轻量级框架:Vue的体积小、速度快,且易于上手和使用,它的设计理念是简单易用。
  • 双向数据绑定:Vue提供了数据驱动视图层的方式,即数据的变化会立即同步到视图层上,并且视图的变化也能同时同步到数据层上。
  • 组件化开发:Vue将应用程序拆分成一个个组件,每个组件拥有自己的模板、脚本和样式,可以实现组件的复用。
  • 非常灵活:Vue可以很好地与其他库和技术集成,例如路由管理器(Vue Router)、组件状态管理器(Vuex)等等。

4、为什么选用MySQL数据库(看你用的是什么数据库)

好的,谢谢老师的提问
  • 开源免费:MySQL 是一个开源项目,任何人都可以免费下载使用。此外,因为 MySQL 软件是免费分发的,所以它的总体成本比商业数据库要低得多。
  • 易于安装和使用:MySQL 安装简单、易于配置,具有较好的可移植性和兼容性,用户可以轻松地创建和管理数据库。
  • 高性能和可扩展性:MySQL 具有高效的存储引擎、索引和查询优化功能等特性,可以实现高速数据处理和查询。此外,MySQL 的可扩展性也很好,支持分布式部署和集群部署等方式。
  • 安全性较高:MySQL 提供了严格的访问权限控制功能,可以保证数据的安全性。同时,MySQL 也提供了完善的备份和恢复机制,能够有效防止数据损失。
  • 可靠性和稳定性高:MySQL 采用了多线程架构,支持多用户并发访问,可以高效稳定地处理大量数据请求。此外,MySQL 还提供了内置的容错机制和故障转移功能,可以对故障进行快速恢复和处理。
  • 因此,MySQL 是一种功能齐全、安全可靠、性能高效、易于使用和维护的数据库管理系统,适合大量的业务系统应用场景。
    想到什么就说什么,大概记一下

5、什么是数据完整性?数据完整性分为哪几种?实体完整性在表里是由什么来实现的?(数据库方面的问题)

好的,谢谢老师的提问
  • 数据完整性是指保证数据库中数据的准确性、一致性和有效性的能力。它是数据库管理系统最基本的功能之一,能够确保数据被正确地输入、修改、删除或查询。
  • 数据完整性通常包括以下几种类型:
  • 实体完整性:确保每个表都有一个主键,并且主键值唯一、非空,并且不重复。实体完整性可以通过设置主键约束来实现。
  • 参照完整性:确保表之间的关系是正确的,在外键列中只能引用存在的主键值。参照完整性可以通过设置外键约束来实现。
  • 域完整性:确保数据输入的正确性,检查数据是否在列定义中规定的范围内(如数据类型、长度、格式等)。域完整性可以通过设置列约束、触发器来实现。
  • 用户定义完整性:确保业务规则得到正确的执行,以满足业务需求。例如:限制特定用户对数据的操作权限等。用户定义完整性可以通过触发器、存储过程等方式来实现。
  • 在 MySQL 数据库中,实体完整性通常是由主键(Primary Key)约束来实现的。主键是一种用于标识唯一性的约束,它可以保证表中的每条记录唯一且非空。在创建表时,可以通过使用 PRIMARY KEY 关键字,将一个或多个列指定为主键。

6、描述一下什么是类,类里面封装的都是什么?(如果你在论文中涉及到类Java等)

好的,谢谢老师的提问
  • 在面向对象的编程中,类是指一种用来描述对象属性和行为的抽象数据类型。它是一种模板或蓝图,用于创建对象的实例。一个类可包含多个属性(也称为字段、成员变量)和方法(也称为函数、成员函数),用来描述对象的状态和行为。
  • 类通常具有以下特点:
  • 封装性:类可以将数据和方法封装在一起,以避免数据被错误地修改,保护数据安全性。
  • 继承性:子类可以继承父类的属性和方法,并且可以通过覆盖或扩展来改变其行为。
  • 多态性:同一种方法在不同的对象实例上可以表现出不同的行为,增加了程序的灵活性和可扩展性。
  • 类里面封装的通常包括两大部分内容:
  • 成员变量(也称为属性或字段):用于描述对象的状态和属性,是类的数据成员。例如,一个人类类可以包含姓名、性别、年龄等属性。
  • 成员函数(也称为方法或函数):用于描述对象的行为和操作,是类的函数成员。例如,一个人类类可以包含吃饭、睡觉、工作等方法。
  • 这些成员变量和成员函数都是封装在类内部的,外部无法直接访问,只能通过类的对象来进行访问。封装性保证了数据安全性和程序健壮性,增加了程序的可维护性和可读性。

7、检索功能支持模糊查询吗?怎么实现的?

8、数据库设计分为哪几个步骤?

9、什么是主键和外键?

10、用例是什么?(看你论文中是否涉及)

11、用到的什么测试方法?优缺点

12、测试的目的

13、这个功能是怎么实现的?(例如分页功能)

1.分页功能是Web应用程序中非常常见的功能,用于将数据分批次显示到用户界面上,以提高用户体验和数据呈现效果。下面介绍一种基于后端和前端协同工作的实现方式:

后端实现
后端需要实现一个接口,该接口需要接收请求参数(当前页码和每页数量),并根据这些参数查询数据库获取相应的数据。查询时要注意控制查询数据的条目数量,以便能够按照每页数量将数据分页显示。
前端实现
前端需要实现一个分页组件,该组件需要接收从后端获取的数据和当前分页的状态信息(当前页码、每页数量、总数等),并将数据进行渲染和分页操作。具体实现方式可以使用Vue.js等前端框架来完成。
实现流程
(1)前端发送请求到后端,并传递当前页码和每页数量参数;
(2)后端根据请求参数,查询数据库获取相应的数据,并计算总数;
(3)后端将查询结果以及当前分页的状态信息(当前页码、每页数量、总数等)返回给前端;
(4)前端接收后端的数据,将查询结果进行分页和渲染,同时展示分页器组件;
(5)用户可以通过分页器组件来切换页码、跳转页面等操作,前端会监听这些操作,重新向后端获取数据,以此来实现分页功能。

2.基于springboot+vue的前后端分离项目登录流程

实现流程
(1)用户访问登录页面,输入用户名和密码,并点击登录按钮触发登录事件;
(2)前端将用户名和密码以POST方式发送给后端/登录接口,并监听后端的响应结果;
(3)后端接收到用户名和密码参数后,对其进行验证,并返回相应的状态码(成功或失败),同时生成一个Token令牌;
(4)前端根据后端返回的状态码进行相应的处理(如跳转到主页面或提示错误信息),并将Token令牌保存到本地存储中;
(5)用户再次访问其他需要登录才能访问的页面时,前端会在请求头中携带Token令牌信息;
(6)后端收到请求后,对Token进行验证,如果验证通过,则认为用户已登录,否则会返回401状态码,要求用户重新登录。

具体来说

前端实现
前端需要通过Vue.js等框架来实现登录页面。在登录页面中,用户需要输入用户名和密码,并点击登录按钮触发登录事件。
当用户点击登录按钮时,前端会将用户名和密码以POST方式发送给后端/登录接口(如“/login”),并监听后端的响应结果。
如果后端返回成功的状态码,说明登录成功,前端则会根据后端返回的响应数据进行相应的处理(如跳转到主页面)。否则,前端会提示用户登录失败的错误信息。
后端实现
后端需要实现一个接口(如“/login”),该接口需要接收前端发送过来的POST请求,并获取请求中的用户名和密码参数。
后端接收到用户名和密码参数后,需要对其进行验证。一般情况下,后端会将用户名和密码与数据库中保存的信息进行比较,以判断用户是否合法。
如果用户名和密码正确,则后端会返回一个成功的状态码(如200),并生成一个Token令牌,用于保持会话状态;否则,后端会返回一个失败的状态码(如401),告知前端登录失败。
Token验证
为了保持登录状态,后端需要为每个登录成功的用户生成一个Token令牌,并在用户每次请求时对令牌进行验证。当用户再次访问其他需要登录才能访问的页面时,前端会在请求头中携带Token令牌信息,后端则会收到这个请求并对Token进行验证。
如果Token验证通过,则认为用户已登录,否则会返回401状态码,要求用户重新登录。

14、ER图是指什么?实体用什么来表示?

15、流程图元素?时序图元素?

16、用例图的作用,用例之间的关系?

17、页面传值的方法?

  • URL 传值:通过 URL 中的参数传递数据。例如 http://www.example.com/page.php?id=123 ,其中 id=123 就是通过 URL 传递的参数。
  • 表单传值:通过表单提交数据,通过 HTTP 请求将表单数据发送到服务器,服务器接收并处理这些数据。
  • Cookie:Cookie 是客户端存储数据的一种方式,通过设置 Cookie,可以在不同页面之间共享数据。但是需要注意的是,Cookie 中的数据是明文传输的,存在安全风险。
  • Session:Session 也是在客户端存储数据的一种方式,但是与 Cookie 不同的是,其数据存储在服务器端,通过会话机制来实现不同页面之间的数据传递。Session 数据的传输是加密的,比 Cookie 更安全,但是会增加服务器端的负担。
  • 请求头传值:通过在请求头中添加自定义的参数来传递数据。例如,在 HTTP 请求头中添加自定义的参数 token 来传递用户身份认证信息。
  • 以上这些方法都可以实现页面之间的数据传递。具体使用哪种方法,需要根据具体的业务需求和安全性考虑来选择。

18、开发过程中遇到了哪些困难,如何解决的?

20、都实现了什么功能?

21、为什么选择B/S框架?

好的,谢谢老师的提问

选择B/S框架的主要原因是其具有以下优势:
跨平台:B/S架构的应用程序运行在Web浏览器上,不需要安装客户端软件,可以在多种操作系统和设备上运行,包括Windows、Linux、Mac等。
维护简单:B/S架构将应用程序的业务逻辑集中在服务器端,将客户端软件减少到最少,并且这些软件也大多数都是标准的Web浏览器,因此维护和升级起来相对简单。
易于扩展:B/S架构中的应用程序通常采用三层或多层架构,便于后期的功能扩展、性能优化和维护。新的功能可以通过增加服务器端的控制器、服务、DAO等组件来实现,而无需修改客户端软件。
数据安全:B/S架构中的应用程序一般采用HTTPS协议进行通信,数据传输过程中采用SSL/TLS加密技术,保证了数据传输的安全性。
高性能:B/S架构中的Web应用程序通常使用Java、C#等高级语言进行开发,这些语言具有强大的性能优化特性,同时Web服务器和数据库服务器也可以进行优化,保证了整个系统的高性能。
总之,选择B/S框架的主要优点在于其具有跨平台、维护简单、易于扩展、数据安全和高性能等特点。这些特点使得B/S架构的应用程序可以适应不同的业务需求,并且可以方便地进行维护和升级,

22.你这个支持模糊查询吗?

支持的,大体的实现过程是这的

定义前端页面

在前端页面上增加一个输入框,用于输入模糊查询的关键字。用户可以在输入框中输入关键字进行搜索。同时,还需要定义一个搜索按钮,用户点击这个按钮后会向后端发送查询请求。

实现前后端交互

在Vue组件中,我使用了axios或发送请求到后端接口。在SpringBoot中,定义了一个Controller层的接口,用于接收前端发送的请求。

实现后端服务

在后端接口中,根据前端发送的请求参数进行相应的查询操作。定义了一个Service层来处理具体的查询逻辑,然后将查询结果返回给Controller层。

使用数据库进行模糊查询

在Service层中,可以使用MyBatis持久化框架进行数据的查询操作。在查询语句中使用通配符“%”来实现模糊查询,例如:
SELECT * FROM classroom WHERE name LIKE '%{keyword}%';
其中,{keyword}为前端传递过来的关键字。这条语句将会返回所有名称中包含关键字的教室记录。
返回查询结果给前端
在Controller层中,将查询结果转换为JSON格式后,可以直接返回给前端。前端页面就可以根据查询结果展示相应的数据。
通过以上步骤,就实现了基于SpringBoot + Vue的教室预约系统模糊查询功能。

23.数据库里电话号码是什么类型?

  • 电话号码可以使用字符型(CHAR、VARCHAR)或数值型(数值型,如INT和BIGINT)
  • 我的系统里面电话号码包含字符,连字符(-)、带括号的区号、加号(+)等,则应将其存储为字符型(CHAR、VARCHAR)。请注意,如果将其存储为数值类型,则会删除其中的非数字字符。
  • 此外,如果您需要对电话号码进行搜索、排序或其他类型的数值计算,则应将其存储为数值类型。但是,如果只是存储和显示电话号码,则建议将其存储为字符类型。

24.你测试都用了哪些方法,大概说一说?

就向论文中提到的,我用了单元测试,兼容性测试和系统测试.
分别对每个功能模块进行单独的测试,
同时也同时在不同的使用环境中进行测试,

25.你是怎么实现数据库与后台连接的,能看看你的代码吗?

  • 在系统中集成了持久层框架mybatis和阿里巴巴的 Druid 数据源连接池来获取和管理数据库连接,实现步骤
  • 在 pom.xml 文件中引入相关依赖
  • 在 application.yml 文件中配置数据源信息,
  • 配置连接池信息,例如数据源类型、初始连接数、最大连接数、连接池监控等,同时配置实体类别名的包路径和 Mapper 文件的位置
  • 根据需要编写对应的 Mapper 接口和 XML 文件,以及 Service 层和 Controller 层的代码,具体实现

26.你能说一下软件开发的过程吗?

  • 软件开发的过程通常包括以下几个阶段:
  • 需求分析:在这个阶段,开发人员需要与客户沟通、了解业务需求,明确软件需求和功能特性。需要用到一些技术手段,如用户访谈、竞品分析、原型设计等,以确定项目的范围、目标和限制条件。
  • 设计阶段:在这个阶段,开发人员需要根据需求分析结果,设计软件系统的体系结构、应用架构,明确软件的功能和数据流程。需要用到一些建模工具和设计文档,如UML、ER图等。
  • 编码实现:根据设计阶段的文档和相关规范,开发人员开始编写代码,实现软件的功能,并不断进行单元测试和集成测试,以确保软件的质量和稳定性。
  • 测试与调试:在编码实现阶段完成后,为了确保软件的质量,需要进行全面的测试和调试工作,包括系统测试、性能测试、安全测试等,以发现和解决软件中的缺陷和问题。
  • 发布与维护:在通过测试和调试后,软件可以发布到相关平台,供用户使用。此后需要进行日常维护和支持,及时修复软件中出现的问题和漏洞,保证软件的正常运行和稳定性。
  • 整个软件开发过程需要严格遵循相关规范和流程,以确保软件的质量和项目的进展。同时,也需要不断学习和掌握最新技术和工具,以提高开发效率和软件质量。

27.你能说说varchar 和 char 的区别吗?

  • 在关系型数据库中,VARCHAR 和 CHAR 是两种常见的数据类型,它们的主要区别在于以下几个方面:
  • 存储空间:CHAR 类型的字段会预留固定长度的存储空间,无论实际存储的数据是否达到了该长度,都会占用完整的存储空间。
  • VARCHAR 类型的字段则只会占用实际存储数据所需的空间,因此在存储相同的数据时,VARCHAR 所需的存储空间通常比 CHAR 小。
  • 查询效率:由于 CHAR 类型的字段存储固定长度的数据,因此在查询时效率相对更高。
  • 而 VARCHAR 类型则需要在查询时额外计算其存储长度,查询效率相对稍低。
  • 填充方式:当使用 CHAR 类型时,如果实际存储数据的长度小于指定的长度,数据库引擎会使用空格填充该字段,以确保该字段占据指定的长度。而 VARCHAR 类型不会进行填充操作。
  • 综上所述,如果需要存储长度固定的数据,建议使用 CHAR 类型;如果存储长度可变、且数据占用空间相对较小,建议使用 VARCHAR 类型。同时,由于 VARCHAR 的存储空间灵活,通常情况下也可以节省一些存储空间。

28.你这个下载的是什么,是图片吗?

29.你怎么界定这些人员咨询的内容?

30.你怎么保证这个系统对这些群体有针对性,权威性?

上一篇
内容结束
  最新文章