计算机答辩

你的项目架构是什么?你用的是什么技术

我是选择了 springboot+vue技术,然后前台采用了 springboot 和 vue 技术,加上 mysql数据库做的数据存储。

软件测试有哪些方法?你采用了什么方法?

我是采用了单元测试和功能测试两种测试的方法对该系统做了功能做了测试,使用单元
测试时,对该某些类进行了测试,比如一些获取前台登录信息,查看数据库等,还做了一些功能测试,主要是系统的增删改查进行了简单的测试。

请解释主键和外键的作用并说明它们的区别?

主键是必不可少的键,如 id 键。外键就是需要联合的键,比如一个图书管理系统,我查询我的订单时,在订单表里查询订单的同时,要关联我的外键 user 表里的 id 键。

你的数据为什么选用此数据库?/mysql 的好处

体积小,易安装,速度快,Mysql 性能卓越,服务稳定

springboot优点?

1.简化配置,面相注解编程,无过多的XML 配置
只需要少量的自定义配置即可。
2.快速开发:
通过快速集成各种常用组件和框架,以及提供了便捷的开发工具和插件,开发者可以更快地搭建和开发应用。
仅需几秒钟,就能启动一个简单的Spring Boot应用,节省了大量开发时间,提升了开发效率。

vue优点?

轻量级、组件化、响应式的 JavaScript 框架,用于构建直观、可维护且性能优化的用户界面。

你觉得你的毕业设计创新点是什么

词云数据分析 地图展示文物地址 小i机器人

ssm 和 Springboot 区别?

SSM:面相 XML 编程。SpringBoot:面相注解编程
1、SpringBoot 提供极其快速和简化的操作,让 Spring 开发者快速上手。
2、SpringBoot 提供了 Spring 运行的默认配置。
3、SpringBoot 为通用 Spring 项目提供了很多非功能性特性,例如:嵌入式 Serve、Security、统计、外部配置

ssm

spring springmvc mybatis

springmvc

model:模型,实体类 view: 页面 controller:控制类

SpringMVC 的常用注解

控制器层(Controller)注解
@Controller
含义:标识一个类为Spring MVC控制器。
@RequestMapping
含义:处理映射。@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping

请求参数相关注解

  1. @RequestParam

    • 含义:用于提取请求中的参数给控制器中的形参赋值。
  2. @PathVariable

    • 含义:用于绑定URL中的占位符。
    • 属性:
      • value:用于指定URL中占位符名称。
      • required:是否必须提供占位符(默认为true)。
  3. @RequestBody

    组件型注解

    @Component

    • 含义:通用注解,表示该类是一个Spring组件。
    • 用例:通常用于自定义组件,如工具类、配置类等。
    1. @Repository
      • 含义:对数据访问层(DAO)的接口进行注解,表示该类是一个数据访问组件。
      • 用例:通常用于与数据库交互的类。
    2. @Service
      • 含义:对业务逻辑层进行注解,表示该类是一个业务逻辑组件。
      • 用例:通常用于处理业务逻辑的类。

#{ }和${ }的区别是什么?

#{}是预编译处理,KaTeX parse error: Expected 'EOF', got '#' at position 22: …替换。 Mybatis 在处理#̲{}时,会将 sql 中的#{…{}时,就是把${}替换成变量的值。
使用#{}可以有效的防止 SQL 注入,提高系统安全性

模糊查询 like 语句该怎么写?

在 Java 代码中添加 sql 通配符
select * from 表名 where 字段 like #{value}

谈谈你对 spring 的理解

Spring 是一个轻量级 Java 开发框架,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题

IOC(控制反转)是一种编程思想,用容器控制对象的创建

AOP(面向切面)是一种编程范式,它允许开发者在不修改已有代码的情况下,为程序添加额外的功能,如日志记录、性能监控、事务管理等。

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

varchar可变长度字符窜、char固定长度字符窜

char(10)与varchar(10)都存字符串 abc

CHAR 消耗了硬盘空间更大 = “abc”长度 + 7个空字符 VARCHAR损耗了硬盘 3字节 = “abc”长度.

建议固定长度字符窜用 char存储 ,可变长度字符窜用 varchar

B/S架构的全称为Browser/Server,即浏览器/服务器结构

C/S是Client/Server的缩写。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或SQLServer。CS架构(Client/Server Architecture)是指将应用程序分为客户端和服务器端两个部分,客户端负责业务逻辑处理和显示数据,而服务器只负责计算和数据存储等操作。
B/S架构的全称为Browser/Server,即浏览器/服务器结构。Browser指的是Web浏览器,极少数事务逻辑在前端实现,但主要事务逻辑在服务器端实现。常见的bs架构的应用就是网页版的应用,不需要专门安装软件。现在普遍的工业应用,前端用vue、react、Electron等框架。

说明软件设计与开发过程分为哪几个阶段。每个阶段你都做了哪些工作,得到什么设计结果。

需求分析:分析用户的实际需求,了解应用背景,明确各功能点:

概要设计:基于需求分析,设计整体解决方案:

详细设计:基于概要设计,完成每个模块的设计:

编码:基于详细设计,对每个功能模块进行编码实现:

测试:在本系统中主要是过行了单元测试:

非功能性的需求分析的工作具体内容?

性能:所接口响应时间均在一秒以内

安全性:密码加密,验证码登录,权限控制

易理解性:逻辑和功能的可理解程度·

简单描述系统设计流程,内部逻辑结构?

需求分析-概念设计(er图)-逻辑设计(流程图、数据流图、状态图等工具来描述系统行为)-物理设计(表结构)-详细设计(详细设计文档,表)-编码与测试-部署与维护:

简单说ssm框架特点

轻量级,层次明确,方便更改代码。

测试章节,有没有压力测试?

利用JMeter进行了压测,创建线程组每秒钟200个线程重复了50次,查看结果树请求全部成功,聚合报告查看吞吐量和百分比响应时间等数据

测试的输入验证,是否考虑?

登录注册表单,对输入数据进行验证

导出excel表格的技术?

利用easyExcel框架导出

轮播图的管理,怎么实现的?

vue中element组件只需要标注要展示的地址

统计页面,统计实现技术?

echarts

需求分析阶段的工作

确定需求。服务对象,编写需求文档

当有多字段作为主键,怎么实现?

当使用CREATE TABLE语句创建表时,可以使用PRIMARY KEY约束来定义复合主键

CREATE TABLE my_table (  
    field1 INT,  
    field2 VARCHAR(255),  
    field3 DATE,  
    PRIMARY KEY (field1, field2)  
);

Java中什么方法取值和赋值?

set get

E-R图的构成?

实体,关系(1:1 1:n n:1)。关系属性,连接线

查询数据时用到了模糊查询吗?%和下划线区别?

  • %代表零个、一个或多个任意字符的序列。
  • _代表恰好一个任意字符。

MySQL的存储引擎是什么?

InnoDB(默认) MyISAM

软件测试的方法主要分为两大类

:白盒测试(逻辑覆盖法)和黑盒测试(边界值分析法)。

饼状图和柱状图是如何实现的?该模板一般应用在哪些方面?插件名称?

后台接口提供数据即可。展示各种类目的百分比。echarts。

查询功能是怎么实现的?

查询功能主要为模糊査询,在前端输人想要査询的关键字,然后点击査询触发事件,前端搜索关键字作为参数使用 axios 向后台发送 http请求,后台接收到请求之后,解析参数并根据它来执行sql 语句里面的 like语句进行模拟査询来匹配符合条件的记录,查询完毕后,mybatis将符 合条件的记录返回给前端,前端再进行解析渲染,展示查询结果

前后端交互是如何进行的?

(1)前端组件通过 axios 向后端发送 http 请求.
(2)后端接收到请求后、通过mybatis 从数据库中获取所需要的数据.
(3)后端将处理完的数据通过控制器接口返回给前端.
(4)前端根据后端返回的数据进行页面渲染.

网站怎么实现安全性?/系统安全性有哪些设计

1.使用拦截器 interceptor 进行用户登录校验,前台传一个凭证token,token 将信息传给后端,后端解析 token 表, 如果 token 为空,则表示登录不成功,需要重新登录,为了确保数据的安全性有些接口它是不能访问的,当用户想要访问某些数据的时候,拦截器就会判断用户是否登录,有没有权限.

2 登录验证码

3.密码加密

4.权限控制

post 和 get有什么区別?

post 发送post请求,通过请求体传参,路径看不见参数

get 发送get请求。通过问号传参路径可见参数

系统数据是如何跟数据库进行交互?

采用的是 MyBatis,该框架将 SQL语句从代码中分离出来,写在 xml 里面,降低耦合度便于统一管理和优化,可重用.
优点:支持编写动态SQL而且这个是最简单的持久化框架,小巧并且简单易学.

主键与外键

1:关系型数据库中的一条记录中有若干个属性,若其中一个属性组能够唯一的标识一条记录,那么该属性就可以成为一个主键.

2:外键不是自己这个表的主键,是另外一个表的主键,用于与另一张表的关联,是能够确定另一张表记录的字段,用于保持数据的一致性,比如:A表中的一个字段,是B表的主键,那它就可以是A表的外键.

dto 层是什么

dto 层(也称为model、entity层)作用就是定义实体类,对数据表中的对象的映射,包含实体类的属性和对应属性的get、set方法;

dao 层是什么

(也称为mapper层)da0层会调用dto层,dao 层会定义方法对数据库进行增删改查。一般会有一个放xm!文件的文件夹,xml文件下就是写sql语句。3

service 层是什么

做相应的业务逻辑处理

controller 层是什么

controller会调用前面3层,一般会和前端的js 文件进行数据的交瓦,前端调用对应接口,层接受前端传来的参数,处理好的数据也是通过controller层传递到前端显示的。

登录或者注册中,验证码的实现

前端发送请求,后端利用Kaptcha库的核心组件,用于生成验证码图片和文本。createCaptcha方法创建了一个验证码,并将其图片内容通过ServletOutputStream写入响应中,同时将验证码文本保存在请求的会话中。

图片存放的位置,加载代码展示一下?

本地储存,讲代码

展示数据库,表之间的关联描述一下?数据库中涉及到外键?

讲解表关系

设计和开发中最大的问题?

1.不经意之间的空指针问题(判断是否为空解决)

2.sql语句错误信息

3。设计数据库以及之间的关系

分页功能实现?

PageUtils工具类的startPage()方法实现的。这个类继承自PageHelper类

前端传参数

?号传参 (get) @ RequestParm

路径传参(get) @Pathvariable

请求体传参(post) @RequstBody

黑白盒测试

黑盒测试,也称为功能测试,是一种软件测试方法,其中测试人员将软件视为一个“黑盒子”,只关注其输入和输出,而不关心其内部结构和实现细节。

等价类划分法****边界值分析法**

测试目的

  • 是否有错误的功能或遗漏的功能。
  • 界面是否有误,输入是否能够正确接受,输出是否正确。
  • 是否有数据结构或外部数据库访问错误。
  • 性能是否能够接受。

白盒测试,也称为结构测试或逻辑驱动测试,是一种软件测试方法,其中测试人员可以访问软件的内部结构和源代码,并根据其内部逻辑来设计测试用例。

逻辑覆盖****路径覆盖

测试目的

  1. 检查程序内部的逻辑结构是否正确。
  2. 检查程序是否满足设计的需要。

登录实现

前端填写账户密码验证码发给后端,后端接受参数,验证验证码是否正确,不正确返回验证码错误,根据账户查询数据库,不存在返回查无此人,校验密码,密码正确根据用户信息生成toekn存入redis并返回给前端

选题的意义(研究背景和意义)

创新点?

图片上传

前台通过elememt upload组件上传图片,后台通过MultiparFile 接受以流的形式存在本地

匿名提问

匿名提问type为true 会根据random随机生成六位数字+*****作为反馈这名称,type为false回去cookies查询提供者昵称

  • 16
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

java资料站

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

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

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

打赏作者

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

抵扣说明:

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

余额充值