【Java】使用springbook、thymeleaf、mybatis、mysql实现构建学生管理系统

目录

一、前言

二、项目搭建

三、项目实现:

2.1 项目结构:

2.2 Controller层

2.2.1设计课程管理Controller

2.2.2设计学生信息管理Controller

2.2.3设计登录注册Controller

2.2.4设计学生管理Controller

2.3 mapper层

2.3.1  CourseMapper

2.3.2  StudentMapper接口

2.4 pojo层

2.4.1Course类

2.4.1 Student(设计学生类)

2.5 service层

2.5.1 lmpl层

2.5.1.1CourseServicelmpl类

2.5.1.2 StudentServicelmpl类

2.5.1.3CourseService接口

2.5.1.4 StudentService接口

四、学习情况的总结


一、前言

        随着 科学 技术的不断提高, 计算 机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类 社会 的各个领域并发挥着越来越重要的作用。

        目前,我国的中小学校中档案的管理水平还停留在纸介质的基础上,这样的机制已经不能适应 时代 的 发展 ,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。学籍管理是高等院校学生管理事务中的一项重要工作,在管理过程中涉及大量的数据处理,它的内容对于学校的决策者和管理者来说都至关重要。

二、项目搭建

因截图图片过多,不便展示,所以本报告仅展示部分,具体可在附属的文件代码中查看

项目搭建用到的技术是:springbook、thymeleaf、mybatis、mysql等(本项目使用的是ider开发工具)

三、项目实现:

2.1 项目结构:

【Java】使用springbook、thymeleaf、mybatis、mysql实现构建学生管理系统_第1张图片

2.2 Controller

2.2.1设计课程管理Controller

        代码简要阐述:设计课程管理的Controller的Java类。类中包含了一些请求映射方法,用于处理前端发送的请求并返回结果。

1、 在类上使用@Controller注解,说明该类是一个Controller。

2、 @Autowired注解用于自动注入CourseService对象,方便后续调用CourseService的方法。

3、 @RequestMapping注解用于映射请求路径。例如,@RequestMapping("/course/index")映射了路径"/course/index",当访问该路径时,会调用index()方法处理请求。

4、 index()方法用于处理后台管理系统首页的请求,该方法通过调用CourseService的selectList()方法查询课程列表,并将结果添加到Model对象中。最后,返回模板文件"/course/index"。

5.、selectCourse()方法用于处理搜索/重置请求,该方法根据传入的课程名称courseName,在数据库中查询符合条件的课程列表,将结果添加到Model对象中,并返回模板文件"/course/index"。

6、 insert()方法用于处理新增页面请求,直接返回模板文件"/course/insert"。

7、 insertCourse()方法用于处理新增操作请求,首先判断课程名称是否存在重复,如果存在重复,则返回错误页面"error111"。如果不存在重复,则调用CourseService的insertCourse()方法将课程插入到数据库中,并返回模板文件"/course/index"。

8.、edit()方法用于处理修改页面请求,根据传入的课程id查询对应的课程信息,将课程信息添加到Model对象中,并返回模板文件"/course/edit"。

9、 updateCourse()方法用于处理修改操作请求,首先判断修改后的课程名称是否已经存在,如果存在,则返回错误页面"error111"。如果不存在重复,则调用CourseService的updateCourse()方法更新课程信息,并返回模板文件"/course/index"。

10.、deleteCourse()方法用于处理删除请求,根据传入的课程id调用CourseService的deleteCourse()方法删除对应的课程,并返回模板文件"/course/index"。

【Java】使用springbook、thymeleaf、mybatis、mysql实现构建学生管理系统_第2张图片

 

2.2.2设计学生信息管理Controller

简要概述:使用Spring MVC框架的Controller类,处理与学生信息管理系统首页相关的请求。

1、@Controller注解表示这个类是一个Controller,用于处理HTTP请求。Spring会自动将这个类的实例作为Bean进行管理。

2、@Autowired注解用于自动注入一个UserService对象。因为在这个Controller类中需要使用到UserService的功能。

3、@RequestMapping注解用于映射URL请求路径。例如,"/index"对应的是index()方法,当用户访问"/index"时,Spring会调用index()方法来处理该请求。

4、在index()方法中,通过Model和ModelMap对象来传递数据到前端页面。username是由HTTP请求参数传入的,ModelMap用于存储这个参数的值,然后在返回的视图中将其显示出来。

5、当用户访问"/index"时,返回的视图是"/index"。同样的,"/indexteacher"对应的是indexteacher()方法,返回的视图是"/indexteacher";"/indexstudent"对应的是indexstudent()方法,返回的视图是"/indexstudent"。

        这里的视图使用了文件路径的形式,表示要返回的是一个HTML页面的路径。视图的具体内容需要在工程的templates目录下创建相应的HTML文件。

【Java】使用springbook、thymeleaf、mybatis、mysql实现构建学生管理系统_第3张图片

 

 

2.2.3设计登录注册Controller

简要概述:制作一个登录注册的控制器(Controller),用于处理登录和注册相关的请求。

1、先通过注解`@Controller`标注该类为控制器。

2、再使用`@Autowired`注解将`LogonService`和`StudentService`注入到该控制器中,用于处理登录和注册的业务逻辑。

3、定义两个请求处理方法:

- `logon()`方法用于处理登录页面的请求,返回登录页面的路径`/logon/logon`。

- `logon1()`方法用于处理通过ajax进行前后端交互的登录请求,使用`@ResponseBody`注解表示返回的是字符串,而不是视图。该方法从请求参数中获取用户名和密码,然后根据用户名在数据库中查询对应的记录,依次进行用户名存在判断、密码匹配判断,最后根据不同的结果返回相应的字符串。

4、最后,控制器类的注释表示该类为登录注册控制器。

【Java】使用springbook、thymeleaf、mybatis、mysql实现构建学生管理系统_第4张图片

 

2.2.4设计学生管理Controller

简要概述:设计一个Spring MVC中的Controller类,用于处理与学生相关的请求。

1、@Controller注解表示这个类是一个控制器,用于接收和响应HTTP请求。

2、@Autowired注解用于自动装配依赖的服务类。在这个Controller中,依赖的服务类包括StudentService、ClassService、LogonService和GradeService。

3、@RequestMapping注解用于将HTTP请求映射到Controller的方法上。"/student/index"映射到index方法,"/selectStudent"映射到selectStudent方法,"/student/insert"映射到insert方法,"/insertStudent"映射到insertStudent方法,"/student/edit"映射到edit方法,"/updateStudent"映射到updateStudent方法,"/deleteStudent"映射到deleteStudent方法。

4、index方法用于处理学生管理列表页面的请求。它通过调用studentService的selectList方法获取学生列表,并将结果存入Model中,以便在视图中展示。

5、selectStudent方法用于处理搜索/重置操作的请求。它通过接收参数username、className和gradeName,构造一个Student对象,并调用studentService的selectList方法获取符合条件的学生列表,然后将结果存入Model中,以便在视图中展示。

6、insert方法用于处理新增页面的请求。它通过调用gradeService和classService的selectList方法获取年级和班级的下拉选项列表,然后将结果存入Model中,以便在视图中展示。

7、insertStudent方法用于处理新增操作的请求。首先判断学生是否已存在,如果已存在,则返回错误页面,否则调用studentService的insertStudent方法进行新增操作。

8、edit方法用于处理修改页面的请求。它通过调用studentService的findID方法获取要修改的学生信息,并调用gradeService和classService的selectList方法获取年级和班级的下拉选项列表,然后将结果存入Model中,以便在视图中展示。

9、updateStudent方法用于处理修改操作的请求。首先判断学生的信息是否与其他学生重复,如果重复,则返回错误页面,否则调用studentService的updateStudent方法进行修改操作。

10、deleteStudent方法用于处理删除操作的请求。它通过调用studentService的deleteStudent方法进行删除操作。

        所有的方法最后都返回一个String类型的值,表示要跳转的视图路径。在这段代码中,大多数方法返回的视图路径是"/student/index",表示跳转到学生管理列表页面。

【Java】使用springbook、thymeleaf、mybatis、mysql实现构建学生管理系统_第5张图片

 

2.3 mapper

2.3.1  CourseMapper

实现的功能有:查询列表,查询ID以及增删查改(因太多,不好打印,故不展示太多)

【Java】使用springbook、thymeleaf、mybatis、mysql实现构建学生管理系统_第6张图片

 

2.3.2  StudentMapper接口

实现的功能有:查询列表,查询ID、检查是否唯一以及增删查改等功能(因太多,不好打印,故不展示太多)

【Java】使用springbook、thymeleaf、mybatis、mysql实现构建学生管理系统_第7张图片

2.4 pojo

2.4.1Course

实现的功能有:查询列表,查询ID、检查是否唯一以及增删查改等功能(因太多,不好打印,故不展示太多)

【Java】使用springbook、thymeleaf、mybatis、mysql实现构建学生管理系统_第8张图片

2.4.1 Student(设计学生类)

学生属性:学生id、学生名字、学生性别、学生班级、学生所在年级、学生登录的密码,

(因太多不好打印,故仅展示部分代码,包括下面的)

 【Java】使用springbook、thymeleaf、mybatis、mysql实现构建学生管理系统_第9张图片

2.5 service

2.5.1 lmpl
2.5.1.1CourseServicelmpl

实现的功能有:查询列表,查询ID、检查是否唯一以及增删查改等功能(因太多,不好打印,故不展示太多)

【Java】使用springbook、thymeleaf、mybatis、mysql实现构建学生管理系统_第10张图片

 

2.5.1.2 StudentServicelmpl

实现的功能有:查询列表,查询ID、检查是否唯一以及增删查改等功能(因太多,不好打印,故不展示太多)

【Java】使用springbook、thymeleaf、mybatis、mysql实现构建学生管理系统_第11张图片

 

2.5.1.3CourseService接口

实现的功能有:查询列表,查询ID、检查是否唯一以及增删查改等功能(因太多,不好打印,故不展示太多)

【Java】使用springbook、thymeleaf、mybatis、mysql实现构建学生管理系统_第12张图片

 

2.5.1.4 StudentService接口

实现的功能有:查询列表,查询ID、检查是否唯一以及增删查改等功能(因太多,不好打印,故不展示太多)

【Java】使用springbook、thymeleaf、mybatis、mysql实现构建学生管理系统_第13张图片

四、学习情况的总结

在高级Java课程的学习中,我收获了许多新的知识和技能。以下是我在这门课程中的学习收获总结:

1. 深入理解Java语言特性:通过学习高级Java概念和语法,我对Java编程语言有了更深入的理解。我学会了如何使用高级特性,如泛型、多线程、反射等来提升代码的灵活性和效率。

2. 掌握设计模式:学习设计模式是这门课程中的一个重要部分。我学会了各种经典设计模式的原理和应用,如单例模式、工厂模式、观察者模式等。这些设计模式可以帮助我们编写可维护、可扩展的代码,并提高代码的复用性。

4. 面向对象编程原则:通过学习高级Java课程,我进一步理解了面向对象编程的核心概念和原则,如封装、继承、多态等。这些原则帮助我编写更加可维护和可复用的代码,提高了代码的可读性和灵活性。

总的来说,高级Java课程给了我一个更深入的Java编程知识框架,并帮助我提升了编程能力和解决问题的能力。通过学习这门课程,我对Java语言有了更深入的理解,我相信这些收获将对我的职业发展和未来的学习有很大的帮助。

 

 

 

你可能感兴趣的:(java,开发语言)