在线考试系统(一)后端项目搭建

后端项目搭建

创建数据库和导入基础表数据

在这里插入图片描述

聚合工程概念

使用Java技术开发的工程项目,无论是数据处理系统还是Web网站,随着项目的不断发展,需求的不断细化与添加,工程项目中的代码越来越多,包结构也越来越复杂这时候工程的进展就会遇到各种问题:

(1)不同方面的代码之间相互耦合,这时候–系统出现问题很难定位到问题的出现原因,即使定位到问题也很难修正问题,可能在修正问题的时候引入更多的问题。

(2)多方面的代码集中在一个整体结构中,新入的开发者很难对整体项目有直观的感受,增加了新手介入开发的成本,需要有一个熟悉整个项目的开发者维护整个项目的结构(通常在项目较大且开发时间较长时这是很难做到的)。

(3)开发者对自己或者他人负责的代码边界很模糊,这是复杂项目中最容易遇到的,导致的结果就是开发者很容易修改了他人负责的代码且代码负责人还不知道,责任追踪很麻烦。

将一个复杂项目拆分成多个模块是解决上述问题的一个重要方法,多模块的划分可以降低代码之间的耦合性(从类级别的耦合提升到jar包级别的耦合),每个模块都可以是自解释的(通过模块名或者模块文档),模块还规范了代码边界的划分,开发者很容易通过模块确定自己所负责的内容。

创建Maven父工程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
直接删掉src下面的所有文件夹

引入springboot基础jar包

在这里插入图片描述

	<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.3.RELEASE</version>
    </parent>
    <dependencies>
        <!--集成springmvc并实现自动配置 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--集成springboot的测试框架 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
    </dependencies>

创建Maven子工程

选中项目新建模块,然后点击下一步

取一个名字,点击完成
就可以看到父工程的pom.xml里面有一个红框里面的内容

创建springboot启动类并启动

在这里插入图片描述
在这里插入图片描述

启动完成后,看到端口号,并通过浏览器访问ip:端口,看到404,表示父子工程创建成功。

依次创建剩余模块

在这里插入图片描述

springboot整合mybatisplus

引入jar包

在父工程pom.xml引入myabtis-plus和mysql驱动包

<!--集成mybatis-plus框架 -->
		<dependency>
			<groupId>com.baomidou</groupId>
			<artifactId>mybatis-plus-boot-starter</artifactId>
			<version>3.2.0</version>
		</dependency>
		<!--集成mysql连接驱动包 -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
		</dependency>

修改配置文件

在controller的resources文件中创建yml配置文件

application.yml
spring:
  profiles:
    active: dev
mybatis-plus:
  configuration: # 支持mybatis的原生的配置,就是既可以写sql也可以调用封装好方法来执行增删改查
    map-underscore-to-camel-case: true # 是否开启驼峰命名规则,默认是false
    auto-mapping-behavior: full # 配置自动映射策略,让mybatis来自动把数据库自动映射对应的实体
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 打印sql语句,日志
  mapper-locations: classpath*:**.mapper/**/*Mapper.xml #指定mybatis的xml文件位置
application-dev.yml

在这里插入图片描述

server:
  port: 8081 # 修改springboot内嵌默认tomcat端口号
spring: # 前提:mysql要在5.5-5.7版本
  datasource:
    driverClass: com.mysql.jdbc.Drvier
    url: jdbc:mysql://localhost:3306/aaaexam?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
    username: root
    password: wl123

#  mysql8.0版本
# spring:
#   datasource:
#     url: jdbc:mysql://localhost:3306/ry?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
#     driver-class-name: com.mysql.cj.jdbc.Driver
#     username: root
#     password: wl123

Springboot启动类上加上mapper扫描注解

在这里插入图片描述

启动springboot测试

在这里插入图片描述

登录接口

VO类

在这里插入图片描述

UserInfoMapper接口

在这里插入图片描述

UserInfoService接口

在这里插入图片描述

测试类TestCase

在这里插入图片描述

后端路由LoginController和PostMan测试

在这里插入图片描述
在这里插入图片描述

验证逻辑

自定义异常

在这里插入图片描述

状态码工具类SystemCode

在这里插入图片描述

封装业务层返回数据ResultDTO

在这里插入图片描述

封装MD5加密工具MD5Utils

在这里插入图片描述

封装公共BaseController

专门用于封装json,发送数据用的Controller
在这里插入图片描述

重构后端路由LoginController

在这里插入图片描述

postman测试

错误测试
在这里插入图片描述
正确测试
在这里插入图片描述

新增全局异常处理工具类GlobalExceptionHandler

在这里插入图片描述

postman测试

后端控制台报错,但是会返回错误信息给到前端
在这里插入图片描述

网上考试系统是套基于B/S体系,采用大型数据库Sql Server2000和先进的JAVA、ASP技术开发的网络多用户版、支持在互联网和局域网组织各种无纸化考试的网上考试系统。 该系统具有强大的题库存储功能及题库管理功能,支持单选题、多选题和判断题客观题型和填空题、问答题主观题型。每位学科教师均可建立自己的题库科目、试卷类型、生成网上试卷及纸上试卷,支持人工选题、系统随机选题及按试题序列选题多种方式。自由定义考试科目、考试时间及考式范围,客观题系统自动批卷判分、主观题人工批卷功能。考生登陆系统后只需要点击鼠标就可以完成各项科目的考试,且考试完毕分数自动生成。该系统具有在线考试监控功能,监考教师登陆后台管理系统,可随时直观地看到考生当前的考试状态,如:正在考试、已经交卷、缺考及迟到等。该系统摆脱了传统考试(笔试)环节中繁杂的工作、如:人工选题、印题、批卷、分数统计等,提高了考试工作效率,节省了诸多考试环节中人力、物力、纸张及时间成本。 系统特点: 1、基于B/S体系,网络多用户版,支持在互联网和局域网组织各种无纸化考试。 2、强大的题库管理功能,支持单选题、多选题和判断题三种客观题型和填空题和简答题两种主观题型。 3、多种组卷方式,可以设定从某题库中随机抽取指定数量和难度的试题或手工选取试题,也可以从某题库中每个题型各随机抽取指定数量和难度的试题,并将试卷换算成指定的总分。 4、自由设置考试科目、自由设置题库、自动生成试卷、多功能成绩查询功能。试题支持插入图像(BMP和JPG格式)、对象。 5、系统控制考试时间、考试结束系统自动提交试卷、试卷显示考生照片对考生身份确认,防止替考、重复登陆考试等作弊行为。考生答题完毕交卷后,客观题系统立即判分,主观题有人工批卷功能,并保留考生考试答题信息。 6、在线考试监控功能,系统管理员可随时直观地看到考生当前的状态,如:正在考试、已经交卷、缺考、迟到等。 7、方便的试卷构造功能,分为生成网上试卷、生成纸上试卷,可将试卷以Word格式导出(附答案),无须再进行任何排版便可直接打印。 8、灵活的人员管理方式,系统管理员可以方便地维护考生帐户,并设置其考试状态,如允许考试、禁止考试。 9、可以同时开设多学科、多考场,各考场不会干扰,考生不能串考场。 10、强大SQL SERVER数据库时实备份及恢复功能、防止大量题库意外丢失。 11、节省考试成本及提高教师工作效率:节省了诸多考试环节中人力、物力、时间及纸张等成本。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值