随着全球信息化的发展,人们的生活节奏越来越快,对信息的时效性越来越重视。以传统的宣传方式为载体的传统媒介早已不能满足用户对获取信息的方式、便捷性的需求。所以平时成绩管理系统渐渐成为用户关注的焦点。首先,平时成绩管理系统,网上获取信息的实时性、便捷性要远远高于传统媒个。系统一经上线,无论用户在世界的哪个角落,只要能够连接互联网,就能在第一时间获得想要的信息。以往的教育教学相关信息管理,都是工作人员手工统计。这样即浪费时间,时效性低,而且需要查找和变更的时侯很不方便。随着科学的进步,技术的成熟,计算机信息化也日新月异的发展,社会也已经深刻的认识,计算机功能非常的强大,计算机已经进入了人类社会发展的各个领域,并且发挥着十分重要的作用。计算机技术在现代管理中的应用,使计算机成为用户应用现代技术的重要工具。能够有效的解决获取信息便捷化、全面化的问题,提高效率。
本系统中数据库服务器端采用了Mysql作为后台数据库,使Web与数据库紧密联系起来,通过SpringBoot+Mybatis整合框架。在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。本系统的开发使获取平时成绩管理系统信息能够更加方便快捷,同时也使平时成绩管理系统信息变的更加系统化、有序化。系统界面较友好,易于操作。
IDEA2021 + JDK8 + MySQL5.7/8.0 + navicate
Springboot+Mybatis+layui
如果本地数据库版本为mysql8.0,修改以下配置。
Mysql8连接配置
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.25</version>
</dependency>
驱动
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
路径
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/score?autoReconnect=true&useUni code=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
1.导入score数据库
2.导入项目源码
3.修改resources下的数据库信息
4.运行com.score.boot.StartApplication的main方法即可
5.访问http://localhost:8088/login.html
测试用户密码:
(1)教师:admin/123456
(2)学生:201723132/201723132
其他用户信息可以查询数据库表数据
pom.xml文件描述了一个使用Spring Boot框架、整合了MyBatis、Druid等技术的Java项目。还定义了项目的依赖关系和构建配置。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.score.study</groupId>
<artifactId>StudentScore</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>StudentScore</name>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.2.RELEASE</version>
</parent>
<!-- 添加相关依赖 -->
<dependencies>
<!-- 添加web支持的starter -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- spingBoot整合Mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.2.0</version>
</dependency>
<!-- 数据源 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.29</version>
</dependency>
<!-- mysql驱动包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.25</version>
</dependency>
<!-- 好用的分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.1.0</version>
</dependency>
</dependencies>
<!-- 添加编译和打包的相关插件 -->
<build>
<!-- 添加Spring boot编译插件 -->
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
mybatis-config.xml文件用于配置PageHelper插件的各种属性,用于在MyBatis中实现分页查询。其中,元素的配置提供了很多可选项,可以根据实际需要进行调整。此外,还有一些注释提供了配置参数的说明。这种配置方式使得使用PageHelper插件变得更加灵活,可以根据具体需求进行定制。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<plugins>
<!-- com.github.pagehelper为PageHelper类所在包名 -->
<plugin interceptor="com.github.pagehelper.PageHelper">
<!-- 4.0.0以后版本可以不设置该参数 -->
<property name="dialect" value="mysql"/>
<!-- 该参数默认为false -->
<!-- 设置为true时,会将RowBounds第一个参数offset当成pageNum页码使用 -->
<!-- 和startPage中的pageNum效果一样-->
<property name="offsetAsPageNum" value="true"/>
<!-- 该参数默认为false -->
<!-- 设置为true时,使用RowBounds分页会进行count查询 -->
<property name="rowBoundsWithCount" value="true"/>
<!-- 设置为true时,如果pageSize=0或者RowBounds.limit = 0就会查询出全部的结果 -->
<!-- (相当于没有执行分页查询,但是返回结果仍然是Page类型)-->
<property name="pageSizeZero" value="true"/>
<!-- 3.3.0版本可用 - 分页参数合理化,默认false禁用 -->
<!-- 启用合理化时,如果pageNum<1会查询第一页,如果pageNum>pages会查询最后一页 -->
<!-- 禁用合理化时,如果pageNum<1或pageNum>pages会返回空数据 -->
<property name="reasonable" value="false"/>
<!-- 3.5.0版本可用 - 为了支持startPage(Object params)方法 -->
<!-- 增加了一个`params`参数来配置参数映射,用于从Map或ServletRequest中取值 -->
<!-- 可以配置pageNum,pageSize,count,pageSizeZero,reasonable,orderBy,不配置映射的用默认值 -->
<!-- 不理解该含义的前提下,不要随便复制该配置 -->
<property name="params" value="pageNum=pageHelperStart;pageSize=pageHelperRows;"/>
<!-- 支持通过Mapper接口参数来传递分页参数 -->
<property name="supportMethodsArguments" value="false"/>
<!-- always总是返回PageInfo类型,check检查返回类型是否为PageInfo,none返回Page -->
<property name="returnPageInfo" value="none"/>
</plugin>
</plugins>
</configuration>
SpringApplication.run(StartApplication.class, args);用于启动Spring Boot应用。这个启动类的作用是配置和启动Spring Boot应用,通过注解的方式配置Spring的各种功能,包括自动化配置、组件扫描以及MyBatis的Mapper接口扫描。
package com.score.boot;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication //SpringBoot启动类注解
@EnableAutoConfiguration //开启自动化配置
@ComponentScan("com.score") //类似于Spring的基础类扫描包,用来扫描实体,接口和控制器
@MapperScan("com.score.dao") //mybatis的接口扫描包
public class StartApplication {
public static void main(String[] args) {
SpringApplication.run(StartApplication.class, args);
}
}
一个Spring Boot应用程序启动的过程的日志信息,有些小伙伴看不懂这些启动日志信息,这里简单讲一下。
2023-11-22 13:46:38.740 INFO 17716 --- [main] com.score.boot.StartApplication: Starting StartApplication on LAPTOP-ESJNOT7N with PID 17716 (started by l in F:\大数据JAVA后端\基于Springboot的毕设系统项目\StudentScore)
这是应用程序启动的第一条日志。它显示应用程序名称为 StartApplication,在计算机 LAPTOP-ESJNOT7N 上的进程ID为 17716。启动者是用户 l,并且应用程序的根路径是 F:\大数据JAVA后端\基于Springboot的毕设系统项目\StudentScore。
2023-11-22 13:46:38.742 INFO 17716 --- [main] com.score.boot.StartApplication: No active profile set, falling back to default profiles: default
这条日志表明没有设置活动的Spring配置文件(profile),因此应用程序将回退到默认配置文件 default。
2023-11-22 13:46:38.786 INFO 17716 --- [main] ationConfigEmbeddedWebApplicationContext: Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@6385cb26: startup date [Wed Nov 22 13:46:38 CST 2023]; root of context hierarchy
这是Spring的上下文(context)正在被刷新的日志。它显示了上下文的类型和启动日期。
2023-11-22 13:46:39.405 INFO 17716 --- [main] trationDelegate$BeanPostProcessorChecker: Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$547ba0d6] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
这条日志提到了关于事务管理的配置,指出某个Bean不符合所有Bean后处理器的处理条件,例如不符合自动代理的条件。
2023-11-22 13:46:39.551 INFO 17716 --- [main] s.b.c.e.t.TomcatEmbeddedServletContainer: Tomcat initialized with port(s): 8088 (http)
这条日志表示Tomcat嵌入式Servlet容器已经初始化,并且应用程序将在端口 8088 上提供HTTP服务。
2023-11-22 13:46:39.556 INFO 17716 --- [main] o.apache.catalina.core.StandardService: Starting service Tomcat
Tomcat服务正在启动。
2023-11-22 13:46:39.557 INFO 17716 --- [main] org.apache.catalina.core.StandardEngine: Starting
Servlet Engine: Apache Tomcat/8.5.11
Servlet引擎正在启动,使用的是Apache Tomcat的版本是 8.5.11。
2023-11-22 13:46:39.628 INFO 17716 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]: Initializing Spring embedded WebApplicationContext
这条日志表示Spring嵌入式Web应用程序上下文正在初始化。
2023-11-22 13:46:39.628 INFO 17716 --- [ost-startStop-1] o.s.web.context.ContextLoader: Root WebApplicationContext: initialization completed in 842 ms
根Web应用程序上下文初始化已经完成,耗时842毫秒。
2023-11-22 13:46:39.732 INFO 17716 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean: Mapping filter: 'characterEncodingFilter' to: [/*]
这是一个关于过滤器的日志,指明字符编码过滤器(characterEncodingFilter)被映射到所有请求路径(/*)。
总体来说,这些日志记录了Spring Boot应用程序在启动时的一系列事件,包括上下文的初始化、Tomcat容器的启动以及一些配置的加载,同时如果启动失败也会显示报错日志信息,方便我们找出问题并解决。
Spring框架在应用启动时输出的日志信息,它展示了Web应用中的URL映射信息。
这里我们设置的8088端口,我们直接打开我们的映射端口就可以了
http://localhost:8088
测试用户密码:
(1)教师:admin/123456
(2)学生:201723132/201723132
每个管理页面都可以根据实际情况设置分页条数,增强了展示效果。
我们进行最基本的增删改查测试。
修改性别为男,名字为theshy。
ok,这里也是成功修改。
看一下sql数据库信息,也是正常的。
删除这条数据。
也是可以正常删除。
增删改查成绩后面也是可以的,就不一 一介绍了。
登陆学生端。
账号:201723132
密码:201723132
经过对一系列测试结果的有效分析,本平台开发系统符合用户的要求和需求。所有的基本功能相对产全,操作起来简单方便,测试系统性能良好。整体设计和代码逻辑还是很好的!需要项目视频讲解、代码解析、部署文档、完整源码可以私信我。
还有很多项目没时间整理写博客,后面有时间精力会持续更新更多优质内容,感谢各位的支持!