Java怎么实现教材管理系统
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,这篇文章给大家介绍Java怎么实现教材管理系统,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、项目简述功能包括: 管理员可以增删改查教材、教材商、入库教材、用户(用 户包括学生
千家信息网最后更新 2025年02月02日Java怎么实现教材管理系统
这篇文章给大家介绍Java怎么实现教材管理系统,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
一、项目简述
功能包括: 管理员可以增删改查教材、教材商、入库教材、用户(用 户包括学生和教师)可以对教材商、教材进行。Excel的导入 导出操作。教师以领取入库的教材,可以退还教材。学生只能在对应的教师那里领取教材,并且可以退还教材、 查询自己已经领取的教材。并且对已领教材付款等等。
二、项目运行
环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持)
项目技术: JSP +Spring + SpringMVC + MyBatis + html+ css + JavaScript + JQuery + Ajax + layui+ maven等等。
查看班级选报信息:
@Servicepublic class TopicsServiceImpl implements TopicsService { @Autowired private MyClassMapper classMapper; @Autowired private StudentMapper studentMapper; @Autowired private SubjectselectedMapper subjectselectedMapper; @Autowired private SubjectMapper subjectMapper; @Autowired private HttpServletRequest request; /** * 查看班级选报信息 */ @Override public Listclassinfo(Long id) { MyClass className = classMapper.selectById(id);//查到班级名字 List students = studentMapper.selectByListAll(id);//根据student表里班级id查到用户所在班级的所有人 List projectselectedlist = new ArrayList<>(); List projectlist = new ArrayList<>(); Subjectselected projectselected = null; Subject project = null; for (int i = 0; i < students.size(); i++) { List tprojectselecteds = subjectselectedMapper.selectBystudentid(students.get(i).getId()); if (tprojectselecteds != null && tprojectselecteds.size() > 0) projectselected = tprojectselecteds.get(0); if (projectselected != null) { projectselectedlist.add(projectselected); } else { projectselected = new Subjectselected(); projectselected.setId(0L); projectselected.setIdProject(0L); projectselected.setIdStudent(0L); projectselected.setStuselectFlag(0L); projectselectedlist.add(projectselected); } } for (int i = 0; i < projectselectedlist.size(); i++) { if (projectselectedlist.get(i).getId() != 0) { projectlist.add(subjectMapper.selectById(projectselectedlist.get(i).getIdProject())); } else { project = new Subject(); project.setProjectname("无"); project.setTeachernames("无"); projectlist.add(project); } } List infolist = new ArrayList<>(); classinfo info = null; for (int i = 0; i < projectlist.size(); i++) { info = new classinfo(); info.setId(students.get(i).getId()); info.setClassName(className.getClassName()); info.setName(students.get(i).getName()); info.setStuNum(students.get(i).getStunum()); info.setProjectName(projectlist.get(i).getProjectname()); info.setTeacherNames(projectlist.get(i).getTeachernames()); info.setStuSelectFlag(projectselectedlist.get(i).getStuselectFlag()); infolist.add(info); } return infolist; } /** * 查看课题信息 * 通过classid */ @Override public List topics(Long id) { String specialty = classMapper.selectByspecialty(id); List projectlist = subjectMapper.selectByAll("%" + specialty + "%"); List topicsinfolist = new ArrayList<>(); topicsinfo info = null; for (int i = 0; i < projectlist.size(); i++) { info = new topicsinfo(); info.setProject_id(projectlist.get(i).getId()); info.setProjectType(subjectMapper.selectByprojectType(projectlist.get(i).getIdProjecttype().intValue())); info.setProjectSource(subjectMapper.selectByprojectSource(projectlist.get(i).getIdProjectsource().intValue())); info.setProjectName(projectlist.get(i).getProjectname()); info.setSelectFlag(projectlist.get(i).getSelectFlag()); info.setMarchSpecialty(projectlist.get(i).getMarchspecialty()); info.setTeacherNames(projectlist.get(i).getTeachernames()); topicsinfolist.add(info); } return topicsinfolist; } /** * 课题具体信息 */ @Override public List topicsinfo(Long project_id) { List listed = subjectselectedMapper.selectByprojectid(project_id);//中间表 request.getSession().setAttribute("listsize",listed.size()); List tolist = new ArrayList<>(); topicsto to = null; Student student = null; for (int i = 0; i < listed.size(); i++) { to = new topicsto(); student = studentMapper.selectByid(listed.get(i).getIdStudent()); if(student == null) continue; to.setStuNum(student.getStunum()); to.setName(student.getName()); to.setStuSelectFlag(listed.get(i).getStuselectFlag()); to.setClassName(classMapper.selectById(student.getIdClass()).getClassName()); tolist.add(to); } return tolist; } /** * 获取该用户是否选报了课题 */ public Long state(Student student) { Subjectselected project = null; List tprojectselecteds = subjectselectedMapper.selectBystudentid(student.getId()); if (tprojectselecteds != null && tprojectselecteds.size() > 0) project = tprojectselecteds.get(0); if (project == null) { return 0L; } else return project.getStuselectFlag(); } /** * 添加选题 */ @Override public void insertproject(String project, Long studentid) { Long projectid = subjectMapper.selectByprojectid(project); int flagid = subjectselectedMapper.insertenroll(projectid, studentid); } /** * 删除选题 */ @Override public int deleteprojectselectedid(Long id) { int flag = subjectselectedMapper.deleteBystudentId(id); return flag; } /** * 查询课题名 * */ public String selectprojectname(Long id){ String project_Name = subjectMapper.selectById(id).getProjectname(); return project_Name; } /** * 获取该题是否可选 */ @Override public Long flag(Long project_id) { return subjectMapper.selectByselectFlag(project_id); }}
班级信息查询业务:
@Servicepublic class ClassServiceImpl implements ClassService { @Autowired MyClassMapper myClassMapper; @Autowired SpecialtyService specialtyService; @Autowired StudentService studentService; @Override public List getClasses(Integer offset, String getName, Long specialtyid, Long id_institute) { // 设置分页查询条件 MyClassExample myClassExample = new MyClassExample(); // 添加查询条件 myClassExample = addCondition(myClassExample,offset,id_institute,getName,specialtyid); if(myClassExample==null) return null; //如果 offset 为 -1 则只查询 id 和 name 列 if(offset==-1) { return myClassMapper.selectByExampleSelective(myClassExample, MyClass.Column.id, MyClass.Column.className); }else{ return myClassMapper.selectByExampleSelective(myClassExample); } } @Override public long getClassesCount(Integer offset, String getName, Long specialtyid, Long id_institute) { // 设置分页查询条件 MyClassExample myClassExample = new MyClassExample(); // 添加查询条件 myClassExample = addCondition(myClassExample,offset,id_institute,getName,specialtyid); if(myClassExample==null) return 0; return myClassMapper.countByExample(myClassExample); } @Override public long delClass(MyClass myClass, Long id_institute) throws MyException { checkSpecialtyId(myClass,id_institute); return myClassMapper.deleteByPrimaryKey(myClass.getId()); } @Override public long putClass(MyClass myClass, Long id_institute) throws MyException { checkSpecialtyId(myClass,id_institute); return myClassMapper.updateByPrimaryKey(myClass); } @Override public long postClass(MyClass myClass, Long id_institute) throws MyException { checkSpecialtyId(myClass,id_institute); long count = getClassesCount(1,myClass.getClassName(),null, id_institute); if(count!=0) throw new MyException("该班级已存在"); return myClassMapper.insert(myClass); } @Override public long delClassBySpecialty(Long specialtyid) { return myClassMapper.deleteByExample(new MyClassExample().createCriteria().andIdSpecialtyEqualTo(specialtyid).example()); } public MyClassExample addCondition(MyClassExample myClassExample,Integer offset , Long id_institute , String keyWord , Long id_specialty){ //代表为超管,则可以查询所有; if(id_institute==-1) { return myClassExample.newAndCreateCriteria() .when(StringUtil.stringIsNotNull(keyWord), criteria -> criteria.andClassNameEqualTo(keyWord)) //根据关键字查询 .when(id_specialty!=null,criteria -> criteria.andIdSpecialtyEqualTo(id_specialty)) //根据指定教研室查询 .example() .when(offset!=-1 && offset != 0,criteria -> criteria.page(offset-1, 10)); } //查询出来当前学院的所有专业 Listspecialties = specialtyService.getSpecialtys(-1,null,null,id_institute); //提取 id列 列表 List specialtiesIDs = specialties.stream().map(Specialty::getId).collect(Collectors.toList()); if(specialtiesIDs.size()==0||specialtiesIDs==null) return null; return myClassExample.newAndCreateCriteria() .when(StringUtil.stringIsNotNull(keyWord),criteria -> criteria.andClassNameEqualTo(keyWord)) //根据关键字查询 .when(id_specialty!=null,criteria -> criteria.andIdSpecialtyEqualTo(id_specialty)) //根据指定教研室查询 // 查询的专业只能在当前的学院的教研室下 .andIdSpecialtyIn(specialtiesIDs) .example() .when(offset!=-1 && offset != 0,criteria -> criteria.page(offset-1, 10));// 查询第offest-1页数据(每页10条) } public void checkSpecialtyId(MyClass myClass ,Long id_institute) throws MyException { //如果为超管则不需要检查有没有权力 if(id_institute==-1) { return ; } long id_specialty = myClass.getIdSpecialty(); List specialtyes = specialtyService.getSpecialtys(1,null,null,id_institute); //如果被删除的专业是不属于本系教研室则提示没有权限 for(Specialty specialty :specialtyes) { if(specialty.getId()==id_specialty) return; } throw new MyException("没有权限操作"); } }
管理员业务操作:
@Servicepublic class AdminServiceImpl implements AdminService { @Autowired AdminMapper adminMapper; @Autowired SadminMapper sadminMapper; @Autowired GeneralPurposeMapper mapper; @Autowired PublicService publicService; //Session 保存时间(秒) private final Integer SAVE_TIME = 60*60*24; //超管 和 子管用一个登录 @Autowired StudentMapper studentMapper; @Autowired SubjectselectedMapper subjectselectedMapper; @Autowired SubjectMapper subjectMapper; @Autowired ProjectMapper projectMapper; @Autowired ClassMapper classMapper; @Autowired SpecialtyMapper specialtyMapper; @Autowired InstituteMapper instituteMapper; @Autowired HttpServletRequest request; @Autowired HttpServletResponse response; @Override public Msg login(String name, String pwd , HttpSession httpSession) { Sadmin sadmin = selectSadminByName(name); if(sadmin!=null){ //验证密码是否与数据库中的相同 if(sadmin.getPwd().equals(pwd)){ User user = new User(); //-1表示为超管 user.setId(-1L); user.setRole("sadmin"); user.setUserName(sadmin.getName()); //生成Token 存到 Cookie Cookie cookie = new Cookie("token",TokenUtil.createToken( user )); //该Cookie无法被js读取 cookie.setHttpOnly(true); cookie.setPath("/"); response.addCookie(cookie); return Msg.success(); } return Msg.error("密码错误"); }else { Admin admin = selectByName(name); if(admin == null){ return Msg.error("账号不存在"); }else { if(admin != null && admin.getPwd().equals(pwd)){ User user = new User(); user.setId(admin.getId()); user.setRole("admin"); user.setUserName(admin.getName()); Cookie cookie = new Cookie("token",TokenUtil.createToken( user )); cookie.setPath("/"); cookie.setHttpOnly(true); response.addCookie(cookie); return Msg.success();//账号密码正确 } return Msg.error("密码错误"); } } } @Override public Admin selectByName(String name) { //创建一个 Admin 实例 ,添加条件 为 Name == name AdminExample adminExample = new AdminExample(); adminExample.createCriteria().andNameEqualTo(name); //根据实例 来查询 Listadmin = adminMapper.selectByExample(adminExample); if( admin==null || admin.size()==0 ) { return null; } return admin.get(0); } @Override public Sadmin selectSadminByName(String name) { SadminExample sadminExample = new SadminExample(); sadminExample.createCriteria().andNameEqualTo(name); List sadmin = sadminMapper.selectByExample(sadminExample); if( sadmin==null|| sadmin.size()==0 ) return null; return sadmin.get(0); } @Override public int updatePwdByUserName(String name, String pwd) { AdminExample adminExample = new AdminExample(); adminExample.createCriteria().andNameEqualTo(name); Admin admin = new Admin(); admin.setPwd(pwd); adminMapper.updateByExampleSelective(admin,adminExample); return 0; } @Override public int updateSadminPwdByUserName(String name, String pwd) { SadminExample sadminExample = new SadminExample(); sadminExample.createCriteria().andNameEqualTo(name); Sadmin sadmin = new Sadmin(); sadmin.setPwd(pwd); return sadminMapper.updateByExampleSelective(sadmin, sadminExample); } // 班级的增加 @Override public int add_class(Long specialty_id, String class_name) { List classes = select_class(null, null, null, null, class_name); if (classes == null || classes.size() == 0) { Class class1 = new Class(); class1.setClassName(class_name); class1.setIdSpecialty(specialty_id); return classMapper.insert(class1); } return 0; } @Override public int addAdmin(Admin admin) { //添加的时候检测又没用户名重复的 publicService.CheckIfTheUsernameIsDuplicated(admin.getName()); return adminMapper.insert(admin); } @Override public int delAdmin(Admin admin) { return adminMapper.deleteByPrimaryKey(admin.getId()); } @Override public int updateAdmin(Admin admin) { //不更新username admin.setName(null); return adminMapper.updateByPrimaryKeySelective(admin); } @Override public List selectAdmins(Long offset) { if(offset!=null && offset==-1){ return adminMapper.selectByExampleSelective( new AdminExample(), Admin.Column.id ); } return adminMapper.selectByExample( new AdminExample() ); } // 学生的增删改查 @Override public int add_student(String userName, String stuNum, Long id_class, String name, String gender, String pwd){ Student ss = studentMapper.select_studentbyName(userName, stuNum); if (ss == null) { StudentWithBLOBs student = new StudentWithBLOBs(); student.setUsername(userName); student.setStunum(stuNum); student.setIdClass(id_class); student.setName(name); student.setGender(gender); student.setPwd(pwd); return studentMapper.insert(student); } return 0; } public int delete_class(Long class_id) { return classMapper.deleteByPrimaryKey(class_id); } @Override public int update_class(Long class_id, Long specialty_id, String class_name) { Class class1 = new Class(); class1.setId(class_id); class1.setIdSpecialty(specialty_id); class1.setClassName(class_name); return classMapper.updateByPrimaryKeySelective(class1); } @Override public List select_project(Long institute_id, Long section_id, String section_name) { return projectMapper.select_project(institute_id, null, null); } @Override public List select_studentXT_all(Long section_id, String section_name, Long specialty_id, String specialty_name, Long class_id, String class_name) { List static_students = studentMapper.select_studentXT_all(section_id, section_name, specialty_id, specialty_name, class_id, class_name); if (static_students != null && static_students.size() > 0) { for (int i = 0; i < static_students.size(); i++) { List projectselecteds = select_Projectselected(static_students.get(i).getId(), null); if (projectselecteds != null && projectselecteds.size() > 0) { static_students.get(i).setStuselectFlag("" + projectselecteds.get(0).getStuselectFlag()); static_students.get(i).setProjectname(projectselecteds.get(0).getProject_name()); static_students.get(i).setTeachernames(projectselecteds.get(0).getProject_teachers()); } else { static_students.get(i).setProjectname("未选题"); static_students.get(i).setTeachernames(""); } } } return static_students; } @Override public List select_class(Long institute_id, Long section_id, Long specialty_id, Long class_id, String class_name) { return classMapper.select_class(institute_id, section_id, specialty_id, class_id, class_name); } // 专业方向的增删改查 @Override public int add_specialty(Long section_id, String specialty_name) { List specialties = select_specialty(null, null, null, specialty_name); if (specialties == null || specialties.size() == 0) { Specialty specialty = new Specialty(); specialty.setIdSection(section_id); specialty.setSpecialtyName(specialty_name); return specialtyMapper.insert(specialty); } return 0; } @Override public int delete_student(Long student_id) { return studentMapper.deleteByPrimaryKey(student_id); } @Override public int update_student(Long student_id, String userName, String stuNum, Long id_class, String name, String gender, String pwd) { Student student = new Student(); student.setId(student_id); student.setUsername(userName); student.setStunum(stuNum); student.setIdClass(id_class); student.setName(name); student.setGender(gender); student.setPwd(pwd); return studentMapper.updateByPrimaryKeySelective((StudentWithBLOBs) student); } @Override public List select_student(Long institute_id, Long specialty_id, Long class_id, Long student_id, String name) { List static_students = studentMapper.select_Student(institute_id, specialty_id, class_id, student_id, name); if (static_students != null) { for (int i = 0; i < static_students.size(); i++) { Static_student static_student = static_students.get(i); List projectselected = select_Projectselected(static_student.getId(), null); if (projectselected != null && projectselected.size() != 0) { String s = ""; if (projectselected.get(0).getStuselectFlag() == 1) s = "选题待审核"; else if (projectselected.get(0).getStuselectFlag() == 2) s = "选题未通过"; else s = "选题通过"; static_student.setStuselectFlag(s); static_student.setProjectname(projectselected.get(0).getProject_name()); static_student.setTeachernames(projectselected.get(0).getProject_teachers()); } } return static_students; } return null; } // 通过学生id 或者 课题id 查 课题的选择 情况 public List select_Projectselected(Long student_id, Long project_id) { return subjectselectedMapper.select_Projectselected(student_id, project_id); } public List select_ProjectXQ(Long institute_id, Long section_id, String name) { List projects = subjectMapper.select_ProjectXQ(institute_id, section_id, name); if (projects != null) { for (int i = 0; i < projects.size(); i++) { if (projects.get(i).getSelectFlag() == 0) projects.get(i).setProjectGB("可选"); else if (projects.get(i).getSelectFlag() == 1) projects.get(i).setProjectGB("不可选"); } } return projects; } public int delete_specialty(Long specialty_id) { return specialtyMapper.deleteByPrimaryKey(specialty_id); } @Override public int update_specialty(Long specialty_id, Long section_id, String specialty_name) { Specialty specialty = new Specialty(); specialty.setId(specialty_id); specialty.setIdSection(section_id); specialty.setSpecialtyName(specialty_name); return specialtyMapper.updateByPrimaryKeySelective(specialty); } @Override public List select_specialty(Long institute_id, Long section_id, Long specialty_id, String specialty_name) { return specialtyMapper.select_specialty(institute_id, section_id, specialty_id, specialty_name); // 根据学院id 或者 教研室id 查所有专业方向 } @Override public List select_institute(Long institute_id, String institute_name) { InstituteExample instituteExample = new InstituteExample(); InstituteExample.Criteria criteria = instituteExample.createCriteria(); if (institute_id != null && institute_id != 0) criteria.andIdEqualTo(institute_id); if (institute_name != null && institute_name.length() > 0) criteria.andInstituteNameEqualTo(institute_name); return instituteMapper.selectByExample(instituteExample); } }
关于Java怎么实现教材管理系统就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
查询
教材
班级
课题
选题
专业
教研
教研室
条件
管理
学生
密码
信息
学院
教师
用户
项目
管理系统
系统
业务
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
逆战服务器ip
公安刑侦网关于网络安全提醒
幻世宝可梦服务器下载
数据库删减代码
海康服务器显示解码失败
资深软件开发工程师
网络技术域名词解释
鞍山武术名人数据库照片
卡兹克网络技术有限公司
网络安全手抄报七年级内容
网上招聘软件开发是真的吗
商丘东服务器
数据库表怎么看约束
戴尔服务器技术
紫光软件开发
搞网络安全学哪种编程语言好
网络安全保障期
遵义道真数据库技术与应用
南京比较好的软件开发公司
数据库到mount状态下
数据库原理及应用期末考试题库
有什么好的数据库防火墙
广电竞赛网络安全
服务器被远程连接记录
方舟pvp手游服务器
应对软件开发需求变更
电子科大网络安全宣传周
生态网络技术大学生
焦作软件开发优缺点
服务器连接电视怎么上网