教室管理系统后台设计
前言
本系统后端利用springboot+mybatis作为基础架构,实现了对于数据库的操作以及与前端进行交互的RestAPI接口。功能大致分为四类,用户基本操作、教室信息操作、反馈操作以及教室预约操作。本系统实现了前三类功能,教室预约操作本系统没有实现。
一、 实现功能
-
用户操作
管理员操作 查看所有用户信息 删除用户 登录 普通用户操作 登录 修改密码 修改姓名 注册
-
教室操作
普通用户操作 查看教室信息 管理员操作 增加教室 删除教室 修改教室信息
-
反馈操作
普通用户操作 用户提交反馈 用户查看自己提交的反馈以及回复 查看所有反馈 管理员操作 回复反馈
二、数据库设计
User表记录了用户信息,包括普通用户与管理员,通过权限(priority)字段字段进行区分
Classroom表记录了所有教室信息
Feedback表记录了所有反馈的信息,包括反馈时间与管理员回复
RoomRequest表记录了所有的教室请求
二、Dao层
Dao利用mybatis实现了对数据库的crud操作
1.IUserDao
此接口实现了对User表的crud操作
代码如下:
package com.example.demo.Dao;
import com.example.demo.domain.User;
import org.apache.ibatis.annotations.*;
import org.springframework.context.annotation.Bean;
import org.springframework.scheduling.support.SimpleTriggerContext;
import org.springframework.stereotype.Repository;
import java.util.List;
@Mapper
@Repository
public interface IUserDao {
//获取所有的用户信息
@Select("select *from Users")
List<User> findAll();
//插入用户记录
@Insert("insert into Users(userID,userName,m_password,priority) values(#{userID},#{userName},#{m_password},#{priority})")
void saveUser(User user);
//根据UserID查询用户信息
@Select("select *from Users where userID=#{userID}")
User findByID(@Param("userID") String userID);
//查询特定权限的用户
@Select("select *from Users where priority=#{priority}")
List<User> findByPriority(@Param("priority") Integer priority);
//根据姓名查询用户
@Select("select *from Users where userName=#{userName}")
User findByName(@Param("userName") String userName);
//删除用户
@Delete("delete from Users where userID=#{userID}")
void delete(User user);
//更新记录
@Update("update Users set " +
"userName=#{userName},m_password=#{m_password},priority=#{priority}" +
" where userID=#{userID}")
void update(User user);
//根据姓名对账号进行模糊搜索
@Select("select * from Users where userName like CONCAT('%',#{namepart},'%')")
List<User> findNamePart(@Param("namepart") String namepart);
}
2.IClassRoomDao
此接口实现了对ClassRoom表的查询
代码如下:
package com.example.demo.Dao;
import com.example.demo.domain.ClassRoom;
import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Repository;
import java.math.BigInteger;
import java.util.List;
@Mapper
@Repository
public interface IClassRoomDao {
//查询所有教室信息
@Select("select * from ClassRooms")
List