作业管理系统总结
系统涉及到的技术 JSP/ SpringBoot /Mybatis /RESTful API
前端使用框架 :Bootstrap+layui
后端 :Spring+SpringMVC+Mybatis
数据库 :MYSQL
系统设计
1.创建项目
2.进行Maven项目配置,在pom.xml中添加依赖
3.创建数据库
数据库设计如下
s_homework
s_student
s_student_homerwork
s_teacher
4.创建java对象,配置xml映射文件,创建加载mybatis配置文件的类,通过mybatis框架自带的一些类加载xml配置文件,根据factory获取一个session,通过session执行对应脚本的sql语句。对于执行insert或者update语句需要在最后执行session.commit进行提交操作。
5.测试类编写
用junit对业务逻辑进行测试
6.编写代码,完成项目。
界面展示
主界面
注册
老师登陆
老师界面:
设置作业
作业浏览
审查作业
学生界面
提交作业
部分代码:
Controller层
controller层负责具体的业务模块流程的控制,在此层要调用service层的接口来控制业务流程,控制的配置也同样是在Spring的配置文件里进行,针对具体的业务流程,会有不同的控制器。
注册部分
@RequestMapping(value = "/register",method = RequestMethod.GET)
public String reg() {
return "register";
}
@RequestMapping(value = "/registerPro", method = RequestMethod.POST)
public String register(@RequestParam String username, @RequestParam String ID, @RequestParam String Occupation) {
int o = Integer.parseInt(Occupation);
int id = Integer.parseInt(ID);
if(o != 1){
studentService.register(username,id);
return "Slogin";
}else {
teacherService.register(username,id);
return "Tlogin";
}
}
收集表中信息,对不同角色进行注册
service层
service层主要负责业务模块的应用逻辑应用设计。同样是首先设计接口,再设计其实现类,接着再Spring的配置文件中配置其实现的关联。
StudentService:
public interface StudentService {
List<Homework> selectAllHomework();
void register(String username, int id);
void submitHomework(StudentHomework studentHomework);
void updateHomework(StudentHomework studentHomework);
}
TeacherService
public interface TeacherService {
List<StudentHomework> selectAllStudentHomewor();
void register(String username, int id);
void sethomwork(Homework homework);
}
Impl包中实现接口定义的方法
Dao层
dao层主要做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,dao层的设计首先是设计dao层的接口,然后在Spring的配置文件中定义此接口的实现类,然后就可以再模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰,dao层的数据源配置,以及有关数据库连接参数都在Spring配置文件中进行配置。
总结
功能不是很丰富,只实现了一些基本功能,还有待完善。
遇到的问题:
- maven,mvc文件配置
- 测试junit相关问题
- restful API
- request数据转码UTF-8