Java项目之网络考试系统

视频教程: 01-创建数据库_哔哩哔哩_bilibili

源码下载:百度网盘 请输入提取码 

准备工作

  • 创建数据库
  • 配置IDEA后端
  • 导入前端 

前言:

把代码掰开写进博客里,主要是让自己在整理笔记的过程中,多去思考完成这个功能的核心代码部分是什么。一个功能一个功能地写代码、测试,如果遇到bug,再退回检查新写的这部分代码,测试成功再进一步。之前没做笔记跟着视频教程写项目时,写着写着就迷糊了,乱了,一遇到bug就全盘崩溃。所以,在此记录写项目的完整过程,留下清晰的足迹。学习的方法仍然在不断地改进,以求找到最适合自己的。

过程中的代码名称可能有点变化,以最终的源码文件为准

学生登录

LoginController

package com.study.controller;import com.study.pojo.Users;
import com.study.service.UsersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;import javax.servlet.http.HttpServletRequest;@Controller
public class LoginController {//自动注入@AutowiredUsersService usersService;//老师登录和学生登录的互相跳转@GetMapping("toTeacher")public String toTeaLogin(){return "teacher/login";}@GetMapping("toStuLogin")public String toStuLogin(){return "student/login";}//学生登录@PostMapping("/stulogin")public String stulogin(String username, String userpwd, HttpServletRequest servletRequest){Users login = usersService.login(username, userpwd);if(login==null){System.out.println("登录失败");servletRequest.getSession().setAttribute("mag","密码错误");return "redirect:/toStuLogin";}else{System.out.println("登录成功");return "student/StuMan";}}
}

 UserDao

package com.study.dao;import com.study.pojo.Users;
import org.apache.ibatis.annotations.Mapper;@Mapper
public interface UsersDao {Users login(String username,String userpwd);
}

Users

package com.study.pojo;public class Users {private Integer userid;private String username;private String userpwd;private String truename;private Integer classid;public Integer getUserid() {return userid;}public void setUserid(Integer userid) {this.userid = userid;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getUserpwd() {return userpwd;}public void setUserpwd(String userpwd) {this.userpwd = userpwd;}public String getTruename() {return truename;}public void setTruename(String truename) {this.truename = truename;}public Integer getClassid() {return classid;}public void setClassid(Integer classid) {this.classid = classid;}
}

 UsersServiceImpl

package com.study.service.impl;import com.study.dao.UsersDao;
import com.study.pojo.Users;
import com.study.service.UsersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;@Service
public class UsersServiceImpl implements UsersService {@AutowiredUsersDao usersDao;@Overridepublic Users login(String username, String userpwd) {Users login=usersDao.login(username,userpwd);return login;}
}

UsersService

package com.study.service;import com.study.pojo.Users;public interface UsersService {Users login(String username,String userpwd);
}

 UsersMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTO Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.study.dao.UsersDao"><select id="login" resultType="com.study.pojo.Users">select * from users where username=#{username}and userpwd=#{userpwd}</select>
</mapper>

application.properties

spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.druid.url=jdbc:mysql://localhost:3306/exam?useSSL=false&serverTimezone=Asia/Shanghai
spring.datasource.druid.username=root
spring.datasource.druid.password=admin#其他配置
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.druid.initial-size=5
spring.datasource.druid.min-idle=5
spring.datasource.druid.max-active=20
spring.datasource.druid.max-wait=60000
spring.datasource.druid.time-between-eviction-runs-millis=60000
spring.datasource.druid.min-evictable-idle-time-millis=300000#mapper.xml配置
mybatis.mapper-locations=classpath:mapper/*.xml

 运行结果:

  • 在exam数据库的user表中,手动添加一条数据用于测试
  • 在浏览器输入地址访问:localhost:8080/
  • 主要实现的功能:
    • 登录成功,跳转页面
    • 登录失败,报错”密码错误“

学生注册

StuUserController

package com.study.controller;import com.study.pojo.PClass;
import com.study.pojo.Users;
import com.study.service.PClassService;
import com.study.service.UsersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;import javax.servlet.http.HttpServletRequest;
import java.util.List;/*** 学生的controller层*/
@Controller
public class StuUserController {@AutowiredUsersService usersService;@AutowiredPClassService pClassService;@GetMapping("/register")public String toRegister(Model model){//调用班级的service层,获取全部班级信息List<PClass> allPClass = pClassService.getAllPClass();//把班级列表传回前台model.addAttribute("list",allPClass);return "student/register";}@PostMapping("/CanRegister")public String register(Users users, String username, String userpwd, String truename, Integer classid, HttpServletRequest request){Users byName=usersService.getByName(username);users.setUsername(username);users.setUserpwd(userpwd);users.setTruename(truename);users.setClassid(classid);usersService.addUsers(users);//判断用户是否存在,byName为null时,用户不存在if(byName==null){if(userpwd.equals("")){request.getSession().setAttribute("msg1","密码为空");//在前端显示return  "redirect:/register";//如果密码为空,返回注册页面}if(truename.equals("")){request.getSession().setAttribute("msg2","真实姓名为空");//在前端显示return  "redirect:/register";//如果真实姓名为空,返回注册页面}if(username.equals("")){request.getSession().setAttribute("msg3","用户名为空");//在前端显示return  "redirect:/register";//如果用户名为空,返回注册页面}System.out.println("用户可以注册");return "redirect:/stulogin";//返回登录页面}else{System.out.println("用户已存在");return "redirect:/register";//返回注册页面}}
}

 PClassDao

package com.study.dao;import com.study.pojo.PClass;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;import java.util.List;/*** 接口层*/
@Mapper
@Component
public interface PClassDao {//查询班级的所有信息List<PClass> getAllClass();
}

UsersDao

package com.study.dao;import com.study.pojo.Users;
import org.apache.ibatis.annotations.Mapper;@Mapper
public interface UsersDao {//由此去编写UsersDao.xml文件里的sql语句//注册Integer addUsers(Users users);//查询用户的接口Users getByName(String username);
}

PClass

package com.study.pojo;/*** 班级的实体类* 写完实体类,就去写dao接口,再写sql语句*/
public class PClass {private Integer classid;private String classname;public Integer getClassid() {return classid;}public void setClassid(Integer classid) {this.classid = classid;}public String getClassname() {return classname;}public void setClassname(String classname) {this.classname = classname;}
}

 UsersService

package com.study.service;import com.study.pojo.Users;public interface UsersService {//注册Integer addUsers(Users users);//查询用户Users getByName(String username);
}

UsersServiceImpl

package com.study.service.impl;import com.study.dao.UsersDao;
import com.study.pojo.Users;
import com.study.service.UsersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;@Service
public class UsersServiceImpl implements UsersService {@Overridepublic Integer addUsers(Users users){return usersDao.addUsers(users);}@Overridepublic Users getByName(String username) {return usersDao.getByName(username);}
}

PClassService

package com.study.service;import com.study.pojo.PClass;import java.util.List;public interface PClassService {List<PClass> getAllPClass();
}

 PClassServiceImpl

package com.study.service.impl;import com.study.dao.PClassDao;
import com.study.pojo.PClass;
import com.study.service.PClassService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class PClassServiceImpl implements PClassService {@AutowiredPClassDao pClassDao;@Overridepublic List<PClass> getAllPClass() {return pClassDao.getAllClass();}
}

 UsersMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTO Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.study.dao.UsersDao"><insert id="addUsers">insert into users(userid,username,userpwd,truename,classid)values(default,#{username},#{userpwd},#{truename},#{classid})</insert><select id="getByName" resultType="com.study.pojo.Users">select * from users where username=#{username}</select>
</mapper>

PClassMapper.xml 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.study.dao.PClassDao"><select id="getAllClass" resultType="com.study.pojo.PClass">select * from pclass</select>
</mapper>

老师登录

总体思路:

  • 编写TeaUser实体类
  • 编写TeaUserDao接口
  • 编写SQL语句,在TeaUserMapper.xml文件里,与接口直接映射
  • 编写TeaUserService接口
  • 编写TeaUserServiceImpl

LoginController

package com.study.controller;import com.study.pojo.TeaUser;
import com.study.pojo.Users;
import com.study.service.TeaUserService;
import com.study.service.UsersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;import javax.servlet.http.HttpServletRequest;@Controller
public class LoginController {//教师登录@PostMapping("/tealogin")public String teaLogin(String username,String userpwd,HttpServletRequest request){TeaUser teaUser = teaUserService.teaLogin(username, userpwd);if(teaUser==null){//登录密码错误request.getSession().setAttribute("msg","登录密码错误");return "redirect:/toTeacher";//返回登录首页}else{//登录成功String teaTruename = teaUserService.getTeaTruename(username);//获取老师的姓名request.getSession().setAttribute("Teatruename",teaTruename);//把老师的姓名返回前端页面return "teacher/manage";//跳转到教师的管理页面}}
}

TeaUserDao

package com.study.dao;import com.study.pojo.TeaUser;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;@Mapper
@Component
public interface TeaUserDao {//教师登录TeaUser teaLogin(String username,String userpwd);//获取教师姓名String getTeaTruename(String username);
}

TeaUser

package com.study.pojo;public class TeaUser {private Integer userid;private String username;private String userpwd;private String truename;private String classid;public Integer getUserid() {return userid;}public void setUserid(Integer userid) {this.userid = userid;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getUserpwd() {return userpwd;}public void setUserpwd(String userpwd) {this.userpwd = userpwd;}public String getTruename() {return truename;}public void setTruename(String truename) {this.truename = truename;}public String getClassid() {return classid;}public void setClassid(String classid) {this.classid = classid;}
}

TeaUserService

package com.study.service;import com.study.pojo.TeaUser;public interface TeaUserService {TeaUser teaLogin(String username,String userpwd);String getTeaTruename(String username);
}

TeaUserServiceImpl

package com.study.service.impl;import com.study.dao.TeaUserDao;
import com.study.pojo.TeaUser;
import com.study.service.TeaUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;@Service
public class TeaUserServiceImpl implements TeaUserService {@AutowiredTeaUserDao teaUserDao;//自动注入@Overridepublic TeaUser teaLogin(String username, String userpwd) {return teaUserDao.teaLogin(username,userpwd);}@Overridepublic String getTeaTruename(String username) {return teaUserDao.getTeaTruename(username);}
}

TeaUserMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.study.dao.TeaUserDao"><select id="teaLogin" resultType="com.study.pojo.TeaUser">select * from teauser where username=#{username}and userpwd=#{userpwd}</select><select id="getTeaTruename" resultType="java.lang.String">select truename from teauser where username=#{username}</select>
</mapper>

 运行结果:

 学生的查询操作

LoginController

package com.study.controller;import com.study.pojo.TeaUser;
import com.study.pojo.Users;
import com.study.service.TeaUserService;
import com.study.service.UsersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;import javax.servlet.http.HttpServletRequest;@Controller
public class LoginController {//教师登录@PostMapping("/tealogin")public String teaLogin(String username,String userpwd,HttpServletRequest request){//查询班级idInteger classId=teaUserService.getClassId(username);//老师登录TeaUser teaUser = teaUserService.teaLogin(username, userpwd);if(teaUser==null){//登录密码错误request.getSession().setAttribute("msg","登录密码错误");return "redirect:/toTeacher";//返回登录首页}else{//登录成功String teaTruename = teaUserService.getTeaTruename(username);//获取老师的姓名request.getSession().setAttribute("Teatruename",teaTruename);//把老师的姓名返回前端页面request.getSession().setAttribute("TeaClassid",classId);//把班级id返回前端return "teacher/manage";//跳转到教师的管理页面}}
}

TeacherController

package com.study.controller;import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.study.pojo.PClass;
import com.study.pojo.Users;
import com.study.service.PClassService;
import com.study.service.UsersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;import javax.servlet.http.HttpServletRequest;
import java.util.List;@Controller
public class TeacherController {@AutowiredPClassService pClassService;@AutowiredUsersService usersService;@GetMapping("/StudentList")public String findStuUsers(HttpServletRequest request, Model model,@RequestParam(defaultValue = "1",value = "pageNum")Integer pageNum){//获取班级idInteger teaClassid = (Integer)request.getSession().getAttribute("TeaClassid");//查看老师所在班级PClass classid = pClassService.getClassid(teaClassid);model.addAttribute("pj",classid);//返回数据到前端//设置分页PageHelper.startPage(pageNum,5);//查询学生列表List<Users> users = usersService.pageByClassid(teaClassid);PageInfo<Users> usersPageInfo = new PageInfo<>(users);model.addAttribute("pageInfo",usersPageInfo);model.addAttribute("liss",users);return "teacher/StudentList";}
}

PClassDao

package com.study.dao;import com.study.pojo.PClass;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;import java.util.List;/*** 接口层*/
@Mapper
@Component
public interface PClassDao {//查询班级idPClass getClassId(Integer classid);
}

 TeaUserDao

package com.study.dao;import com.study.pojo.TeaUser;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;@Mapper
@Component
public interface TeaUserDao {//获取班级idInteger getClassId(String username);
}

 UserDao

package com.study.dao;import com.study.pojo.Users;
import org.apache.ibatis.annotations.Mapper;import java.util.List;@Mapper
public interface UsersDao {List<Users> pageById(Integer classid);
}

PClassService

package com.study.service;import com.study.pojo.PClass;import java.util.List;public interface PClassService {PClass getClassid(Integer classid);
}

 TeaUserService

package com.study.service;import com.study.pojo.TeaUser;public interface TeaUserService {Integer getClassId(String username);
}

UsersService

package com.study.service;import com.study.pojo.Users;import java.util.List;public interface UsersService {//根据id查询List<Users> pageByClassid(Integer classid);
}

 PClassServiceImpl

package com.study.service.impl;import com.study.dao.PClassDao;
import com.study.pojo.PClass;
import com.study.service.PClassService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class PClassServiceImpl implements PClassService {@Overridepublic PClass getClassid(Integer classid) {return pClassDao.getClassId(classid);}
}

TeaUserServiceImpl

package com.study.service.impl;import com.study.dao.TeaUserDao;
import com.study.pojo.TeaUser;
import com.study.service.TeaUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;@Service
public class TeaUserServiceImpl implements TeaUserService {@Overridepublic Integer getClassId(String username) {return teaUserDao.getClassId(username);}
}

UsersServiceImpl

package com.study.service.impl;import com.study.dao.UsersDao;
import com.study.pojo.Users;
import com.study.service.UsersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class UsersServiceImpl implements UsersService {@Overridepublic List<Users> pageByClassid(Integer classid) {return usersDao.pageById(classid);}
}

 PClassMapper.xml

<select id="getClassId" resultType="com.study.pojo.PClass">select * from pclass where classid=#{classid}
</select>

TeaUserMapper.xml

<select id="getClassId" resultType="java.lang.Integer">select classid from teauser where username=#{username}
</select>

UsersMapper.xml

<select id="pageById" resultType="com.study.pojo.Users">select * from users where classid=#{classid}
</select>

 运行结果:

学生的添加操作

TeacherController

package com.study.controller;import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.study.pojo.PClass;
import com.study.pojo.Users;
import com.study.service.PClassService;
import com.study.service.UsersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;import javax.servlet.http.HttpServletRequest;
import java.util.List;@Controller
public class TeacherController {@AutowiredPClassService pClassService;@AutowiredUsersService usersService;@GetMapping("/StudentList")public String findStuUsers(HttpServletRequest request, Model model,@RequestParam(defaultValue = "1",value = "pageNum")Integer pageNum){//获取所有班级信息List<PClass> allPClass=pClassService.getAllPClass();model.addAttribute("list",allPClass);return "teacher/StudentList";}//添加学生@PostMapping("/addStu")public String addStuUsers(String username,String userpwd,String truename,Integer classid){//查询学生是否存在Users byName = usersService.getByName(username);Users users=new Users();if(byName==null){users.setUsername(username);users.setUserpwd(userpwd);users.setTruename(truename);users.setClassid(classid);usersService.addUsers(users);}else{System.out.println("该学生已存在");}return "rediect:/StudentList";}
}

运行结果:

学生的修改操作

TeacherController

package com.study.controller;import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.study.pojo.PClass;
import com.study.pojo.Users;
import com.study.service.PClassService;
import com.study.service.UsersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;import javax.servlet.http.HttpServletRequest;
import java.util.List;/*** exams   com.sxt.controller* 2022-07-03  09:43** @author sxt  Administrator* description : 不可描述* @date 2022/7/3  9:43*/
@Controller
public class TeacherController {//修改学生@PostMapping("/updateStu")public String updStuUser(Users users){usersService.updateUsers(users);return "redirect:/StudentList";}}

 UserDao

package com.study.dao;import com.study.pojo.Users;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;import java.util.List;@Mapper
@Component
public interface UsersDao {//由此去编写UsersDao.xml文件里的sql语句Integer updateUsers(Users users);Users getByUserid(Integer userid);
}

UsersService

package com.study.service;import com.study.pojo.Users;import java.util.List;public interface UsersService {Integer updateUsers(Users users);Users getByUserid(Integer userid);
}

 UsersServiceImpl

package com.study.service.impl;import com.study.dao.UsersDao;
import com.study.pojo.Users;
import com.study.service.UsersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class UsersServiceImpl implements UsersService {@Overridepublic Integer updateUsers(Users users) {//修改学生信息return usersDao.updateUsers(users);}@Overridepublic Users getByUserid(Integer userid) {return usersDao.getByUserid(userid);}
}

UsersMapper.xml

<update id="updateUsers">update users set username=#{username},userpwd=#{userpwd},truename=#{truename},classid=#{classid}where userid=#{userid}
</update>
<select id="getByUserid" resultType="com.study.pojo.Users">select * from users where userid=#{userid}
</select>

 学生的删除操作

写代码的逻辑顺序:

  1. controller层:TeacherController
  2. dao层:UsersDao
  3. mapper层:UsersMapper.xml
  4. service层:UsersService
  5. service层:UsersServiceImpl
  6. controller层:TeacherController

 TeacherController

package com.study.controller;import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.study.pojo.PClass;
import com.study.pojo.Users;
import com.study.service.PClassService;
import com.study.service.UsersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;import javax.servlet.http.HttpServletRequest;
import java.util.List;/*** exams   com.sxt.controller* 2022-07-03  09:43** @author sxt  Administrator* description : 不可描述* @date 2022/7/3  9:43*/
@Controller
public class TeacherController {//删除单个学生@GetMapping("/DeleteStu")public String deleteUsers(HttpServletRequest request){Integer userid=Integer.valueOf(request.getParameter("userid"));//获取学生id,通过id单个删除学生usersService.delUserid(userid);return "redirect:/StudentList";}//删除老师所在班级的所有学生@GetMapping("/deleteAll")public String deleteUsersAll(HttpServletRequest request){//获取班级idInteger teaClassid = (Integer) request.getSession().getAttribute("TeaClassid");usersService.delClassid(teaClassid);return "redirect:/StudentList";}}

UserDao

package com.study.dao;import com.study.pojo.Users;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;import java.util.List;@Mapper
@Component
public interface UsersDao {Integer delUserid(Integer userid);Integer delClassid(Integer classid);
}

 UsersMapper.xml

    <delete id="delUserid">delete from users where userid=#{userid}</delete><delete id="delClassid">delete from users where classid=#{classid}</delete>

UsersService

package com.study.service;import com.study.pojo.Users;import java.util.List;public interface UsersService {//根据id删除学生Integer delUserid(Integer userid);//根据班级id删除整班学生Integer delClassid(Integer classid);
}

 UsersServiceImpl

package com.study.service.impl;import com.study.dao.UsersDao;
import com.study.pojo.Users;
import com.study.service.UsersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class UsersServiceImpl implements UsersService {@Overridepublic Integer delUserid(Integer userid) {return usersDao.delUserid(userid);}@Overridepublic Integer delClassid(Integer classid) {return usersDao.delClassid(classid);}
}

运行结果:

题的查询

Subject

package com.study.pojo;public class Subject {private Integer sid;private Integer cno;private String scontent;private String sa;private String sb;private String sc;private String sd;private String skey;private Course course;public String getSkey() {return skey;}public void setSkey(String skey) {this.skey = skey;}public Course getCourse() {return course;}public void setCourse(Course course) {this.course = course;}public Integer getSid() {return sid;}public void setSid(Integer sid) {this.sid = sid;}public Integer getCno() {return cno;}public void setCno(Integer cno) {this.cno = cno;}public String getScontent() {return scontent;}public void setScontent(String scontent) {this.scontent = scontent;}public String getSa() {return sa;}public void setSa(String sa) {this.sa = sa;}public String getSb() {return sb;}public void setSb(String sb) {this.sb = sb;}public String getSc() {return sc;}public void setSc(String sc) {this.sc = sc;}public String getSd() {return sd;}public void setSd(String sd) {this.sd = sd;}
}

Course

package com.study.pojo;public class Course {private Integer cno;private String cname;public Integer getCno() {return cno;}public void setCno(Integer cno) {this.cno = cno;}public String getCname() {return cname;}public void setCname(String cname) {this.cname = cname;}
}

 SubjectDao

package com.study.dao;import com.study.pojo.Subject;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;import java.util.List;@Mapper
@Component
public interface SubjectDao {//查询全部题List<Subject> getAllSubject();
}

CourseDao

package com.study.dao;import com.study.pojo.Course;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;@Mapper
@Component
public interface CourseDao {//通过id查询课程Course getAllById(Integer cno);
}

SubjectMapper.xml

    <select id="getAllSubject" resultType="com.study.pojo.Subject">select * from subject</select>

 CourseMapper.xml

    <select id="getAllById" resultType="com.study.pojo.Course">select * from course where cno=#{cno}</select>

SubjectService

package com.study.service;import com.study.pojo.Subject;import java.util.List;public interface SubjectService {List<Subject> getAllSubject();
}

 CourseService

package com.study.service;import com.study.pojo.Course;
import org.springframework.stereotype.Service;public interface CourseService {Course getAllById(Integer cno);
}

SubjectServiceImpl

package com.study.service.impl;import com.study.dao.SubjectDao;
import com.study.pojo.Subject;
import com.study.service.SubjectService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class SubjectServiceImpl implements SubjectService {@AutowiredSubjectDao subjectDao;@Overridepublic List<Subject> getAllSubject() {return subjectDao.getAllSubject();}
}

 CourseServiceImpl

package com.study.service.impl;import com.study.dao.CourseDao;
import com.study.pojo.Course;
import com.study.service.CourseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;@Service
public class CourseServiceImpl implements CourseService {@AutowiredCourseDao courseDao;@Overridepublic Course getAllById(Integer cno) {return courseDao.getAllById(cno);}
}

TeacherController

package com.study.controller;import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.study.pojo.Course;
import com.study.pojo.PClass;
import com.study.pojo.Subject;
import com.study.pojo.Users;
import com.study.service.CourseService;
import com.study.service.PClassService;
import com.study.service.SubjectService;
import com.study.service.UsersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;import javax.servlet.http.HttpServletRequest;
import java.util.List;/*** exams   com.sxt.controller* 2022-07-03  09:43** @author sxt  Administrator* description : 不可描述* @date 2022/7/3  9:43*/
@Controller
public class TeacherController {//查询题目@GetMapping("/finddanxuan")public String findSingle(@RequestParam(defaultValue = "1",value = "pageNum") Integer pageNum,Model model){PageHelper.startPage(pageNum,5);//题目分页显示List<Subject> allSubject = subjectService.getAllSubject();for(Subject subject:allSubject){//查询题目Course allById=courseService.getAllById(subject.getCno());subject.setCourse(allById);}PageInfo<Subject> subjectPageInfo = new PageInfo<>(allSubject);model.addAttribute("pageInfo",subjectPageInfo);//传回前端 model.addAttribute("subjectlist",allSubject);//传回前端 return "teacher/Single";}
}

 运行结果:

题的添加

course这块在这部分主要是做下拉框的课程选择部分的 

SubjectDao

package com.study.dao;import com.study.pojo.Subject;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;import java.util.List;@Mapper
@Component
public interface SubjectDao {//添加题Integer addSubject(Subject subject);
}

CourseDao

package com.study.dao;import com.study.pojo.Course;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;import java.util.List;@Mapper
@Component
public interface CourseDao {//查询全部List<Course> getAllCourse();
}

 SubjectMapper.xml

    <insert id="addSubject">insert into subject(sid,cno,scontent,sa,sb,sc,sd,skey)values(default,#{cno},#{scontent},#{sa},#{sb},#{sc},#{sd},#{skey})</insert>

CourseMapper.xml

    <select id="getAllCourse" resultType="com.study.pojo.Course">select * from course</select>

 SubjectService

package com.study.service;import com.study.pojo.Subject;import java.util.List;public interface SubjectService {Integer addSingle(Subject subject);
}

CourseService

package com.study.service;import com.study.pojo.Course;
import org.springframework.stereotype.Service;import java.util.List;public interface CourseService {List<Course> getAllCourse();
}

 SubjectServiceImpl

package com.study.service.impl;import com.study.dao.SubjectDao;
import com.study.pojo.Subject;
import com.study.service.SubjectService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class SubjectServiceImpl implements SubjectService {@Overridepublic Integer addSingle(Subject subject) {return subjectDao.addSubject(subject);}
}

CourseServiceImpl

package com.study.service.impl;import com.study.dao.CourseDao;
import com.study.pojo.Course;
import com.study.service.CourseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class CourseServiceImpl implements CourseService {@Overridepublic List<Course> getAllCourse() {return courseDao.getAllCourse();}
}

 TeacherController

package com.study.controller;import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.study.pojo.Course;
import com.study.pojo.PClass;
import com.study.pojo.Subject;
import com.study.pojo.Users;
import com.study.service.CourseService;
import com.study.service.PClassService;
import com.study.service.SubjectService;
import com.study.service.UsersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;import javax.servlet.http.HttpServletRequest;
import java.util.List;/*** exams   com.sxt.controller* 2022-07-03  09:43** @author sxt  Administrator* description : 不可描述* @date 2022/7/3  9:43*/
@Controller
public class TeacherController {//获取所有课程@ResponseBody //因为返回的是一组数据@GetMapping("/findAllCourse")public List<Course> courseList(){List<Course> allCourse = courseService.getAllCourse();return allCourse;}//添加题@PostMapping("/addSingle")public String addSingle(Integer cno,String scontent,String sa,String sb,String sc,String sd,String skey){Subject subject=new Subject();subject.setCno(cno);subject.setScontent(scontent);subject.setSa(sa);subject.setSb(sb);subject.setSc(sc);subject.setSd(sd);subject.setSkey(skey);subjectService.addSingle(subject);//添加题目return "redirect:/finddanxuan";}
}

运行结果:

题的修改

SubjectDao

package com.study.dao;import com.study.pojo.Subject;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;import java.util.List;@Mapper
@Component
public interface SubjectDao {//修改Integer updateSingle(Subject subject);//id查询Subject getBySid(Integer sid);
}

SubjectMapper.xml

    <update id="updateSingle">update subject set cno=#{cno},scontent=#{scontent},sa=#{sa},sb=#{sb},sc=#{sc},sd=#{sd},skey=#{skey}where sid=#{sid}</update><select id="getBySid" resultType="com.study.pojo.Subject">select * from subject where sid=#{sid}</select>

 SubjectService

package com.study.service;import com.study.pojo.Subject;import java.util.List;public interface SubjectService {Integer updateSingle(Subject subject);Subject getBySid(Integer sid);
}

SubjectServiceImpl

package com.study.service.impl;import com.study.dao.SubjectDao;
import com.study.pojo.Subject;
import com.study.service.SubjectService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class SubjectServiceImpl implements SubjectService {@Overridepublic Integer updateSingle(Subject subject) {return subjectDao.updateSingle(subject);}@Overridepublic Subject getBySid(Integer sid) {return subjectDao.getBySid(sid);}
}

 TeacherController

package com.study.controller;import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.study.pojo.Course;
import com.study.pojo.PClass;
import com.study.pojo.Subject;
import com.study.pojo.Users;
import com.study.service.CourseService;
import com.study.service.PClassService;
import com.study.service.SubjectService;
import com.study.service.UsersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;import javax.servlet.http.HttpServletRequest;
import java.util.List;/*** exams   com.sxt.controller* 2022-07-03  09:43** @author sxt  Administrator* description : 不可描述* @date 2022/7/3  9:43*/
@Controller
public class TeacherController {//获取题数据@ResponseBody@PostMapping("/findBySid")public Subject findBySid(@RequestBody Subject subject){Subject subject1 = subjectService.getBySid(subject.getSid());if(subject1!=null){return subject1;}else{return null;}}//修改题@PostMapping("/updateSingle")public String updSingle(Subject subject){subjectService.updateSingle(subject);return "redirect:/finddanxuan";}
}

运行结果:

题的删除

SubjectDao

package com.study.dao;import com.study.pojo.Subject;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;import java.util.List;@Mapper
@Component
public interface SubjectDao {//删除题Integer delSingle(Integer sid);
}

SubjectMapper.xml

    <delete id="delSingle">delete from subject where sid=#{sid}</delete>

 SubjectService

package com.study.service;import com.study.pojo.Subject;import java.util.List;public interface SubjectService {Integer delSingle(Integer sid);
}

SubjectServiceImpl

package com.study.service.impl;import com.study.dao.SubjectDao;
import com.study.pojo.Subject;
import com.study.service.SubjectService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class SubjectServiceImpl implements SubjectService {@Overridepublic Integer delSingle(Integer sid) {return subjectDao.delSingle(sid);}
}

 TeacherController

package com.study.controller;import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.study.pojo.Course;
import com.study.pojo.PClass;
import com.study.pojo.Subject;
import com.study.pojo.Users;
import com.study.service.CourseService;
import com.study.service.PClassService;
import com.study.service.SubjectService;
import com.study.service.UsersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;import javax.servlet.http.HttpServletRequest;
import java.util.List;/*** exams   com.sxt.controller* 2022-07-03  09:43** @author sxt  Administrator* description : 不可描述* @date 2022/7/3  9:43*/
@Controller
public class TeacherController {//删除题@PostMapping("/deleteSingle")public String delSingle(@RequestParam Integer sid){subjectService.delSingle(sid);return "redirect:/finddanxuan";}
}

运行结果:

考试信息操作

  • 创建考试
  • 查询考试
  • 修改考试
  • 删除考试

TeacherController

package com.sxt.controller;import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.sxt.pojo.*;
import com.sxt.service.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.tags.Param;import javax.jws.soap.SOAPBinding;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Random;/*** exams   com.sxt.controller* 2022-07-03  09:43** @author sxt  Administrator* description : 不可描述* @date 2022/7/3  9:43*/
@Controller
public class TeacherController {@AutowiredExamService examService;@AutowiredPaperService paperService;//查询试卷信息@GetMapping("/paperDetails")public  String paperDetails(Integer eid,Model model){List<Paper> byEid = paperService.getByEid(eid);model.addAttribute("tm",byEid);Exam exam = examService.getExam(eid);model.addAttribute("exam",exam);return "teacher/paperDetails";}//获取所有班级,主要是下拉框里的内容@ResponseBody@GetMapping("/findAllClasses")public List<PClass> findAllClasses(){List<PClass> allPClass=pClassService.getAllPClass();return allPClass;}//查询一场考试@ResponseBody@PostMapping("/findByOneExam")public Exam findByOneExam(@RequestBody Exam exam){Exam exam1 = examService.getExam(exam.getEid());if(exam1==null){//考试信息为空,则返回空,否则返回考试信息return null;}else{return exam1;}}//修改考试信息@PostMapping("/updateExam")public String updateExam(Exam exam){examService.updExam(exam);return "redirect:/selectexam";}//删除考试信息@GetMapping("/deleteExam")public String deleteExam(Integer eid){examService.delExam(eid);return "redirect:/selectexam";}
}

ExamDao

package com.sxt.dao;import com.sxt.pojo.Exam;
import org.apache.ibatis.annotations.Mapper;import java.util.List;/*** exams   com.sxt.dao* 2022-07-17  10:16** @author sxt  Administrator* description : 不可描述* @date 2022/7/17  10:16*/
@Mapper
public interface ExamDao {Integer addExam(Exam exam);//查询所有考试信息List<Exam> getAllExam();//根据id查询Exam getExam(Integer eid);//修改考试Integer updExam(Exam exam);//删除考试Integer delExam(Integer eid);
}

 PaperDao

package com.sxt.dao;import com.sxt.pojo.Paper;
import org.apache.ibatis.annotations.Mapper;import java.util.List;/*** exams   com.sxt.dao* 2022-07-17  11:07** @author sxt  Administrator* description : 不可描述* @date 2022/7/17  11:07*/
@Mapper
public interface PaperDao {Integer addPaper(Paper paper);//根据考试信息id查询试卷List<Paper> getByEid(Integer eid);//删除试卷信息:eidInteger deleteByEid(Integer eid);
}

 Exam

package com.sxt.pojo;import java.util.Date;public class Exam {private Integer eid;private String pname;private Integer cno;private Integer useid;private Integer classid;private Integer singlenumber;private  Integer singlecore;private Date examdate;private  Date examtime;private Integer testtime;private Course course;//getter,setter方法略
}

Paper

package com.sxt.pojo;
public class Paper {private Integer pid;private Integer eid;private  Integer sid;private Integer cno;private String scontent;private String sa;private String sb;private String sc;private  String sd;private String skey;//getter,setter方法略
}

 ExamService

package com.sxt.service;import com.sxt.pojo.Exam;import java.util.List;public interface ExamService {Integer addExam(Exam exam);List<Exam> getAllExam();Exam getExam(Integer eid);Integer updExam(Exam exam);Integer delExam(Integer eid);
}

PaperService

package com.sxt.service;import com.sxt.pojo.Paper;import java.util.List;public interface PaperService {Integer addPaper(Paper paper);List<Paper> getByEid(Integer eid);
}

 ExamServiceImpl

package com.sxt.service.impl;import com.sxt.dao.ExamDao;
import com.sxt.dao.PaperDao;
import com.sxt.pojo.Exam;
import com.sxt.service.ExamService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class ExamServiceImpl implements ExamService {@AutowiredExamDao examDao;@AutowiredPaperDao paperDao;@Overridepublic Integer addExam(Exam exam) {return examDao.addExam(exam);}@Overridepublic List<Exam> getAllExam() {return examDao.getAllExam();}@Overridepublic Exam getExam(Integer eid) {return examDao.getExam(eid);}@Overridepublic Integer updExam(Exam exam) {return examDao.updExam(exam);}@Overridepublic Integer delExam(Integer eid) {paperDao.deleteByEid(eid);//清空试卷信息Integer integer = examDao.delExam(eid);return integer;}
}

PaperServiceImpl

package com.sxt.service.impl;import com.sxt.dao.PaperDao;
import com.sxt.pojo.Paper;
import com.sxt.service.PaperService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class PaperServiceImpl implements PaperService {@AutowiredPaperDao paperDao;@Overridepublic Integer addPaper(Paper paper) {return paperDao.addPaper(paper);}@Overridepublic List<Paper> getByEid(Integer eid) {return paperDao.getByEid(eid);}
}

 ExamMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTO Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.sxt.dao.ExamDao"><insert id="addExam" useGeneratedKeys="true" keyProperty="eid">insert into exam (eid,pname,cno,useid,classid,singlenumber,singlecore,examdate,examtime,testtime)values (default,#{pname},#{cno},#{useid},#{classid},#{singlenumber},#{singlecore},#{examdate},#{examtime},#{testtime})</insert><update id="updExam">update exam set pname=#{pname},cno=#{cno},useid=#{useid},classid=#{classid},singlenumber=#{singlenumber},singlecore=#{singlecore},examdate=#{examdate},examtime=#{examtime},testtime=#{testtime}where eid=#{eid}</update><delete id="delExam">delete from exam where eid=#{eid}</delete><select id="getAllExam" resultType="com.sxt.pojo.Exam">select * from exam</select><select id="getExam" resultType="com.sxt.pojo.Exam">select * from exam where eid=#{eid}</select>
</mapper>

PaperMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTO Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.sxt.dao.PaperDao"><insert id="addPaper">insert into paper(pid,eid,sid,cno,scontent,sa,sb,sc,sd,skey)values (default,#{eid},#{sid},#{cno},#{scontent},#{sa},#{sb},#{sc},#{sd},#{skey})</insert><delete id="deleteByEid">delete from paper where eid=#{eid}</delete><select id="getByEid" resultType="com.sxt.pojo.Paper">select * from paper where eid=#{eid}</select>
</mapper>


 老师退出

TeaUserController

package com.sxt.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;import javax.servlet.http.HttpServletRequest;@Controller
public class TeaUserController {//退出登录@GetMapping("/Tlogout")public String Tlogout(HttpServletRequest request){//session请查看LoginController文件//需要清除老师id的sessionrequest.getSession().removeAttribute("Teauserid");//需要清除老师班级id的sessionrequest.getSession().removeAttribute("TeaClassid");//需要清除老师真实姓名的sessionrequest.getSession().removeAttribute("Teatruename");return "redirect:/toTeacher";//跳转到老师登录的页面}
}

运行结果:

 学生修改密码

LoginController

package com.sxt.controller;import com.sxt.pojo.TeaUser;
import com.sxt.pojo.Users;import com.sxt.service.TeaUserService;
import com.sxt.service.UsersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;import javax.servlet.http.HttpServletRequest;@Controllerpublic class LoginController {//学生登陆@PostMapping("/stulogin")public String stulogin(String username, String userpwd, HttpServletRequest servletRequest){if (login==null){}else {System.out.println("登陆成功");//将用户密码传入前端servletRequest.getSession().setAttribute("liss",userpwd);//调用获取用户ID的方法Integer userid = usersService.getByNameId(username);//将获取到的用户ID传入前端servletRequest.getSession().setAttribute("lis",userid);return "student/StuMan";}}}

StuUserController

package com.sxt.controller;import com.sxt.pojo.PClass;
import com.sxt.pojo.Users;
import com.sxt.service.PClassService;
import com.sxt.service.UsersService;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;import javax.servlet.http.HttpServletRequest;
import java.util.List;@Controller
public class StuUserController {//学生修改登录密码/*根据前端请求方式和端口,来写注解<form id="loginForm" th:action="@{/xiugai}" method="post" >*/@PostMapping("/xiugai")public String updateUserPwd(String userpwd,Integer userid){Integer i = usersService.updUserPwd(userpwd, userid);if(i==0){return "";}else{//修改成功,返回登录页面return "redirect:/toStuLogin";}}
}

 UsersDao

package com.sxt.dao;import com.sxt.pojo.Users;
import org.apache.ibatis.annotations.Mapper;import java.util.List;@Mapper
public interface UsersDao {//修改密码Integer updUserPwd(String userpwd,Integer userid);//通过用户名查询用户idInteger getByNameId(String username);
}

UsersMapper.xml

    <!--学生修改登录密码--><update id="updUserPwd">update users set userpwd=#{userpwd}where userid=#{userid}</update><!--通过用户名查询用户id--><select id="getByNameId" resultType="java.lang.Integer">select userid from users where username=#{username}</select>

 UsersService

package com.sxt.service;import com.sxt.pojo.Users;import java.util.List;public interface UsersService {//学生修改登录密码的接口Integer updUserPwd(String userpwd,Integer userid);//通过用户名查询用户idInteger getByNameId(String username);
}

UsersServiceImpl

package com.sxt.service.impl;import com.sxt.dao.UsersDao;
import com.sxt.pojo.Users;
import com.sxt.service.UsersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;
@Service
public class UsersServiceImpl implements UsersService {//学生修改登录密码的实现方法,封装成一个方法,再调用@Overridepublic Integer updUserPwd(String userpwd, Integer userid) {return usersDao.updUserPwd(userpwd,userid);}//通过用户名查询用户id@Overridepublic Integer getByNameId(String username) {return usersDao.getByNameId(username);}
}

 运行结果:

学生首页完善(添加姓名和退出登录)

LoginController

package com.sxt.controller;import com.sxt.pojo.TeaUser;
import com.sxt.pojo.Users;import com.sxt.service.TeaUserService;
import com.sxt.service.UsersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;import javax.servlet.http.HttpServletRequest;@Controllerpublic class LoginController {//学生登陆@PostMapping("/stulogin")public String stulogin(String username, String userpwd, HttpServletRequest servletRequest){if (login==null){}else {//获取用户的真实姓名String trueName = usersService.getTrueName(username);//将获取到的用户的真实姓名传入前端,即在前端显示学生的真实姓名servletRequest.getSession().setAttribute("truename",trueName);return "student/StuMan";}}
}

StuUserController

package com.sxt.controller;import com.sxt.pojo.PClass;
import com.sxt.pojo.Users;
import com.sxt.service.PClassService;
import com.sxt.service.UsersService;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;import javax.servlet.http.HttpServletRequest;
import java.util.List;@Controller
public class StuUserController {//退出登录@GetMapping("/logout")public String slogout(HttpServletRequest request){//清除用户ID的sessionrequest.getSession().removeAttribute("lis");//清除用户真实姓名的sessionrequest.getSession().removeAttribute("truename");return "redirect:/toStuLogin";}
}

 UsersDao

package com.sxt.dao;import com.sxt.pojo.Users;
import org.apache.ibatis.annotations.Mapper;import java.util.List;@Mapper
public interface UsersDao {//通过用户名查询学生的真实姓名String getTrueName(String username);
}

UsersMapper.xml

    <!--通过用户名查询学生的真实姓名--><select id="getTrueName" resultType="java.lang.String">select truename from users where username=#{username}</select>

 UsersService

package com.sxt.service;import com.sxt.pojo.Users;import java.util.List;public interface UsersService {//通过用户名查询学生的真实姓名String getTrueName(String username);
}

UsersServiceImpl

package com.sxt.service.impl;import com.sxt.dao.UsersDao;
import com.sxt.pojo.Users;
import com.sxt.service.UsersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;
@Service
public class UsersServiceImpl implements UsersService {//通过用户名查询学生真实姓名@Overridepublic String getTrueName(String username) {return usersDao.getTrueName(username);}
}

运行结果:

考试中心的考试信息列表

ExamController

package com.sxt.controller;import com.sxt.pojo.Course;
import com.sxt.pojo.Exam;
import com.sxt.service.CourseService;
import com.sxt.service.ExamService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;import javax.servlet.http.HttpServletRequest;
import java.util.List;@Controller
public class ExamController {@AutowiredExamService examService;@AutowiredCourseService courseService;@GetMapping("/examList")public String examList(HttpServletRequest request, Model model){//获取班级IDInteger classid = (Integer) request.getSession().getAttribute("classid");List<Exam> examClassid = examService.getExamClassid(classid);//获取课程IDfor (Exam exam : examClassid){Course allById = courseService.getAllById(exam.getCno());exam.setCourse(allById);}//把课程ID传入前端model.addAttribute("examslenth",examClassid.size());model.addAttribute("exams",examClassid);return "student/examList";}
}

LoginController

package com.sxt.controller;import com.sxt.pojo.TeaUser;
import com.sxt.pojo.Users;import com.sxt.service.TeaUserService;
import com.sxt.service.UsersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;import javax.servlet.http.HttpServletRequest;@Controllerpublic class LoginController {//学生登陆@PostMapping("/stulogin")public String stulogin(String username, String userpwd, HttpServletRequest servletRequest){if (login==null){}else {//通过用户名查询班级IDInteger byClass = usersService.getByClass(username);//将获取到的班级ID传入前端servletRequest.getSession().setAttribute("classid",byClass);return "student/StuMan";}}
}

 ExamDao

package com.sxt.dao;import com.sxt.pojo.Exam;
import org.apache.ibatis.annotations.Mapper;import java.util.List;@Mapper
public interface ExamDao {//通过班级id查询考试信息List<Exam> getExamClassid(Integer classid);
}

UsersDao

package com.sxt.dao;import com.sxt.pojo.Users;
import org.apache.ibatis.annotations.Mapper;import java.util.List;@Mapper
public interface UsersDao {//通过用户名查询班级IDInteger getByClass(String username);
}

 ExamMapper.xml

    <!--通过班级id查询考试信息--><select id="getExamClassid" resultType="com.sxt.pojo.Exam">select * from exam where classid=#{classid}</select>

UsersMapper.xml

    <!--通过用户名查询班级ID--><select id="getByClass" resultType="java.lang.Integer">select classid from users where username=#{username}</select>

 ExamService

package com.sxt.service;import com.sxt.pojo.Exam;import java.util.List;public interface ExamService {//通过班级id查询考试信息List<Exam> getExamClassid(Integer classid);
}

UsersService

package com.sxt.service;import com.sxt.pojo.Users;import java.util.List;public interface UsersService {//通过用户名查询班级IDInteger getByClass(String username);
}

 ExamServiceImpl

package com.sxt.service.impl;import com.sxt.dao.ExamDao;
import com.sxt.dao.PaperDao;
import com.sxt.pojo.Exam;
import com.sxt.service.ExamService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class ExamServiceImpl implements ExamService {//通过班级id查询考试信息@Overridepublic List<Exam> getExamClassid(Integer classid) {return examDao.getExamClassid(classid);}
}

UsersSerivceImpl

package com.sxt.service.impl;import com.sxt.dao.UsersDao;
import com.sxt.pojo.Users;
import com.sxt.service.UsersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;
@Service
public class UsersServiceImpl implements UsersService {//通过用户名查询班级ID@Overridepublic Integer getByClass(String username) {return usersDao.getByClass(username);}
}

 运行结果:

注意创建数据测试时,创建考试的老师所在班级ID和学生所在班级ID要一致

答卷

ExamController

package com.sxt.controller;import com.sxt.pojo.Course;
import com.sxt.pojo.Exam;
import com.sxt.pojo.Paper;
import com.sxt.service.CourseService;
import com.sxt.service.ExamService;
import com.sxt.service.PaperService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;import javax.servlet.http.HttpServletRequest;
import java.util.List;@Controller
public class ExamController {@AutowiredPaperService paperService;//查询数据@ResponseBody@PostMapping("/findExamByEid")public Exam findExamById(@RequestBody Exam exam){Exam exam1 = examService.getExam(exam.getEid());if(exam1!=null){//如果不为空,返回考试信息return exam1;}else{return null;}}//查询试卷@GetMapping("/paper")public String findPaper(Integer eid,HttpServletRequest request,Model model){//通过考试信息ID获取试卷问题列表List<Paper> byEid = paperService.getByEid(eid);int size=byEid.size();//获取考试信息Exam exam = examService.getExam(eid);//传入前端request.getSession().setAttribute("single",byEid);model.addAttribute("cont",size);model.addAttribute("exam",exam);return "student/papers";}
}

运行结果:

显示考试成绩

Studentexam 

package com.sxt.pojo;public class Studentexam {private Integer seid;private Integer userid;private Integer classid;private Integer eid;private String pname;private Integer score;private Integer zscore;private String tjtime;//getter,setter方法省略
}

ExamController

package com.sxt.controller;import com.sun.org.apache.xpath.internal.operations.Mod;
import com.sxt.pojo.Course;
import com.sxt.pojo.Exam;
import com.sxt.pojo.Paper;
import com.sxt.pojo.Studentexam;
import com.sxt.service.CourseService;
import com.sxt.service.ExamService;
import com.sxt.service.PaperService;
import com.sxt.service.StudentExamService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;import javax.servlet.http.HttpServletRequest;
import java.sql.Timestamp;
import java.util.List;@Controller
public class ExamController {@AutowiredStudentExamService studentExamService;//显示考试成绩@PostMapping("/PaperScore")public String paperScore(HttpServletRequest request,Model model){//存放答案String stuArr[]=null;//初始成绩Integer score=0;//计算成绩Integer eid = Integer.valueOf(request.getParameter("eid"));Exam exam = examService.getExam(eid);Integer singlecore = exam.getSinglecore();//获取试卷问题列表List<Paper> single = (List<Paper>) request.getSession().getAttribute("single");//获取试卷ID的值for(int i=0;i<single.size();i++){Paper paper = single.get(i);stuArr = request.getParameterValues(String.valueOf(paper.getSid()));if(stuArr!=null){//如果数据不为空就进行答案封装String stuKeys="";//封装答案for(int j=0;j<stuArr.length;j++){stuKeys+=stuArr[i];}if(stuKeys.equalsIgnoreCase(paper.getSkey())){score+=singlecore;}else{}}else{//否则返回考试信息列表页面return "redirect:/examList";}}//计算总成绩int zscore=single.size()+singlecore;//学生成绩model.addAttribute("score",score);String pname = request.getParameter("pname");String tjtime = request.getParameter("tjtime");Timestamp timestamp = new Timestamp(System.currentTimeMillis());Timestamp.valueOf(tjtime);//获取classid的值Integer classid = (Integer) request.getSession().getAttribute("classid");//获取userid的值Integer userid = (Integer) request.getSession().getAttribute("lis");Studentexam studentexam = new Studentexam();//用set方法存储值studentexam.setEid(eid);studentexam.setPname(pname);studentexam.setScore(score);studentexam.setClassid(classid);studentexam.setUserid(userid);studentexam.setTjtime(tjtime);studentexam.setZscore(zscore);studentExamService.addStudentExam(studentexam);return "student/paperScore";}//查询学生成绩@GetMapping("/findAllStuPaper")public String findStuPaperList(HttpServletRequest request, Model model){//获取用户IDInteger userid = (Integer) request.getSession().getAttribute("lis");//根据用户ID查询学生成绩List<Studentexam> studentexams = studentExamService.getstuExamList(userid);//传入前端model.addAttribute("stuexamlist",studentexams);return "student/stuPaperList";}
}

StudentExamDao

package com.sxt.dao;import com.sxt.pojo.Studentexam;
import org.apache.ibatis.annotations.Mapper;import java.util.List;@Mapper
public interface StudentExamDao {//添加学生成绩Integer addStudentExam(Studentexam studentexam);//查询学生成绩List<Studentexam> getStuPaperList(Integer userid);
}

StudentExamMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.sxt.dao.StudentExamDao"><!--添加学生成绩--><insert id="addStudentExam">insert into studentrxam(seid,userid,classid,eid,pname,zscore,score,tjtime)values(default ,#{userid},#{classid},#{eid},#{pname},#{zscore},#{score},#{tjtime})</insert><!--查询学生成绩--><select id="getStuPaperList" resultType="com.sxt.pojo.Studentexam">select * from studentrxam where userid=#{userid}</select>
</mapper>

StudentExamSerivce

package com.sxt.service;import com.sxt.pojo.Studentexam;import java.util.List;public interface StudentExamService {//添加学生成绩Integer addStudentExam(Studentexam studentexam);//查询学生成绩List<Studentexam> getstuExamList(Integer userid);
}

 StudentExamServiceImpl

package com.sxt.service.impl;import com.sxt.dao.StudentExamDao;
import com.sxt.pojo.Studentexam;
import com.sxt.service.StudentExamService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class StudentExamServiceImpl implements StudentExamService {@AutowiredStudentExamDao studentExamDao;//添加学生成绩@Overridepublic Integer addStudentExam(Studentexam studentexam) {return studentExamDao.addStudentExam(studentexam);}//查询学生成绩@Overridepublic List<Studentexam> getstuExamList(Integer userid) {return studentExamDao.getStuPaperList(userid);}
}

运行结果:

 

学生考试功能的完善

ExamController

package com.sxt.controller;import com.sun.org.apache.xpath.internal.operations.Mod;
import com.sxt.pojo.Course;
import com.sxt.pojo.Exam;
import com.sxt.pojo.Paper;
import com.sxt.pojo.Studentexam;
import com.sxt.service.CourseService;
import com.sxt.service.ExamService;
import com.sxt.service.PaperService;
import com.sxt.service.StudentExamService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;import javax.servlet.http.HttpServletRequest;
import java.sql.Timestamp;
import java.util.List;@Controller
public class ExamController {//是否做过该试卷,不可重复考试@ResponseBody@PostMapping("/findOneStuExam")public List<Studentexam> findIsPaper(HttpServletRequest request,@RequestBody Exam exam){//获取学生IDInteger userid = (Integer) request.getSession().getAttribute("lis");//获取考试信息IDInteger eid = exam.getEid();//是否做过该试卷List<Studentexam> isPaper = studentExamService.getIsPaper(userid, eid);return isPaper;}//解决点击在线考试报错@GetMapping("/StuMan")public String getStuMan(){return "student/StuMan";//跳转到在线考试系统页面即可}
}

StudentExamDao

package com.sxt.dao;import com.sxt.pojo.Studentexam;
import org.apache.ibatis.annotations.Mapper;import java.util.List;@Mapper
public interface StudentExamDao {//查询是否做过该试卷List<Studentexam> getIsPaper(Integer userid,Integer eid);
}

 StudentExamMapper.xml

    <select id="getIsPaper" resultType="com.sxt.pojo.Studentexam">select * from studentrxam where userid=#{userid} and eid=#{eid}</select>

StudentExamService

package com.sxt.service;import com.sxt.pojo.Studentexam;import java.util.List;public interface StudentExamService {//查询是否做过该试卷List<Studentexam> getIsPaper(Integer userid,Integer eid);
}

StudentExamServiceImpl

package com.sxt.service.impl;import com.sxt.dao.StudentExamDao;
import com.sxt.pojo.Studentexam;
import com.sxt.service.StudentExamService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class StudentExamServiceImpl implements StudentExamService {//查询是否做过该试卷@Overridepublic List<Studentexam> getIsPaper(Integer userid, Integer eid) {return studentExamDao.getIsPaper(userid,eid);}
}

 运行结果:

教师查询学生成绩信息

ExamController

package com.sxt.controller;import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.sun.org.apache.xpath.internal.operations.Mod;
import com.sxt.pojo.*;
import com.sxt.service.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;import javax.servlet.http.HttpServletRequest;
import java.sql.Timestamp;
import java.util.List;@Controller
public class ExamController {//老师查询学生成绩@GetMapping("/findAllScore")public String findAllScore(@RequestParam(defaultValue = "1",value = "pageNum") Integer pageNum,HttpServletRequest request, Model model){//实现分页功能PageHelper.startPage(pageNum,5);//每5条分一页//获取老师班级IDInteger teaClassid = (Integer) request.getSession().getAttribute("TeaClassid");//通过班级ID获取班级信息PClass classes = pClassService.getClassid(teaClassid);//信息传入前端model.addAttribute("cs",classes);//老师查询学生成绩List<Studentexam> allStuScore = studentExamService.getAllStuScore(teaClassid);//通过成绩获取学生信息for(Studentexam studentexam : allStuScore){Users byUserid = usersService.getByUserid(studentexam.getUserid());studentexam.setUsers(byUserid);}//传入前端 PageInfo<Studentexam> studentexamPageInfo = new PageInfo<>(allStuScore);model.addAttribute("pageInfo",studentexamPageInfo);model.addAttribute("score",allStuScore);return "teacher/studentScore";}}

StudentExamDao

package com.sxt.dao;import com.sxt.pojo.Studentexam;
import org.apache.ibatis.annotations.Mapper;import java.util.List;@Mapper
public interface StudentExamDao {//老师查询试卷信息List<Studentexam> getAllStuScore(Integer classid);
}

 StudentExamMapper.xml

    <!--老师查询试卷信息--><select id="getAllStuScore" resultType="com.sxt.pojo.Studentexam">select * from studentexam where classid=#{classid}</select>

StudentExamService

package com.sxt.service;import com.sxt.pojo.Studentexam;import java.util.List;public interface StudentExamService {//老师查询试卷信息List<Studentexam> getAllStuScore(Integer classid);
}

 StudentExamServiceImpl

package com.sxt.service.impl;import com.sxt.dao.StudentExamDao;
import com.sxt.pojo.Studentexam;
import com.sxt.service.StudentExamService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class StudentExamServiceImpl implements StudentExamService {//老师查询试卷信息@Overridepublic List<Studentexam> getAllStuScore(Integer classid) {return studentExamDao.getAllStuScore(classid);}
}

运行结果:

配置登录拦截器

LoginInterceptor

package com.sxt.config;import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;/*** 配置登录拦截器*/
public class LoginInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {//学生IDInteger userid = (Integer) request.getSession().getAttribute("lis");//老师IDInteger teauserid = (Integer) request.getSession().getAttribute("Teauserid");//获取URIString uri=request.getRequestURI();if(userid!=null){if(!(uri.equals("/StudentList"))&&!(uri.equals("/DeleteStu"))&&!(uri.equals("/deleteAll"))&&!(uri.equals("/finddanxuan"))&&!(uri.equals("/addSingle"))&&!(uri.equals("/selectexam"))&&!(uri.equals("/addexam"))&&!(uri.equals("/paperDetails"))&&!(uri.equals("/deleteExam"))&&!(uri.equals("/findAllScore"))){return true;}}if(teauserid!=null){if(!(uri.equals("/examList"))&&!(uri.equals("/paper"))&&!(uri.equals("/findAllStuPaper"))&&!(uri.equals("/StuMan"))){return true;}}response.sendRedirect(request.getContextPath()+"/toStuLogin");//跳转回登录页面//返回登录页时清空学生和老师的登录信息request.getSession().removeAttribute("lis");request.getSession().removeAttribute("Teauserid");return false;}@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {}
}

LoginConfig

package com.sxt.config;import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;/*** 声明登录拦截器的类*/
@Configuration
public class LoginConfig implements WebMvcConfigurer {@Overridepublic void addInterceptors(InterceptorRegistry registry) {//注册登录拦截器InterceptorRegistration interceptorRegistration = registry.addInterceptor(new LoginInterceptor());//拦截所有路径interceptorRegistration.addPathPatterns("/**");//不用拦截的路径:登录页面和静态资源interceptorRegistration.excludePathPatterns("/css/**","/fonts/**","/img/**","/js/**","/","/student/login.html","/student/login.html","student/register.html","/toTeacher","/toStuLogin","/stulogin","/tealogin","/register","/CanRegister");}
}

 运行结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/126061.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图数据库Neo4j概念、应用场景、安装及CQL的使用

一、图数据库概念 引用Seth Godin的说法&#xff0c;企业需要摒弃仅仅收集数据点的做法&#xff0c;开始着手建立数据之间的关联关系。数据点之间的关系甚至比单个点本身更为重要。 传统的**关系数据库管理系统(RDBMS)**并不擅长处理数据之间的关系&#xff0c;那些表状数据模…

js解决加油站

在一条环路上有 n 个加油站&#xff0c;其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车&#xff0c;从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发&#xff0c;开始时油箱为空。 给定两个整数数组 gas 和 cost &…

【2023.10.29练习】C语言-字符出现次数计算

计算机能力挑战初赛2020.18题 题目描述&#xff1a; "输入一行由字符a~z和A~Z组成的字符串&#xff0c;字符串长度<10000&#xff0c; 求其中任意两个字符出现次数的差值的绝对值 输入&#xff1a; 第一行输入字符串 第二行输入两个字符。 输出&#xff1a; 输出这…

redis缓存雪崩

缓存雪崩与缓存击穿的区别&#xff1f; 缓存击穿&#xff1a;在高并发的条件下&#xff0c;某个热点key的过期导致了大量的请求直接到达数据库 缓存雪崩&#xff1a;缓存雪崩是多个缓存键同时失效&#xff0c;而缓存击穿是单个热门缓存键失效。缓存雪崩是指在同一时间&#xff…

生态扩展Spark Doris Connector

生态扩展Spark Doris Connector doris官网去查找相匹配的spark spark的安装&#xff1a; tar -zxvf spark-3.1.2-bin-hadoop3.2.tgzmv spark-3.1.2-bin-hadoop3.2 /opt/sparkspark环境配置&#xff1a;vim /etc/profile export SPARK_HOME/opt/spark export PATH$PATH:$SPAR…

互联网摸鱼日报(2023-11-01)

互联网摸鱼日报(2023-11-01) 36氪新闻 毫末智行张凯&#xff1a;2023年高阶智能辅助驾驶市场迎来大爆发 ​撕开三星、金士顿市场&#xff0c;国产老牌存储器企业出海三年&#xff0c;营收翻三倍&#xff5c;insight全球 给医生一双“透视眼”&#xff0c;「锦瑟医疗」专注开…

Docker之docker-compose(介绍,安装及入门示例)

文章目录 一、docker-compose介绍Compose 中有两个重要的概念&#xff1a; 二、docker-compose安装三、docker-compose简单示例参考网址&#xff1a; 一、docker-compose介绍 Compose 项目是 Docker 官方的开源项目&#xff0c;负责实现对 Docker 容器集群的快速编排。 Compo…

【机器学习】三、特征选择与稀疏学习

特征选择和稀疏学习 子集搜索与评价 对象都有很多属性来描述&#xff0c;属性也称为特征&#xff08;feature&#xff09;&#xff0c;用于刻画对象的某一个特性。对一个学习任务而言&#xff0c;有些属性是关键有用的&#xff0c;而有些属性则可能不必要纳入训练数据。对当前学…

通用开源自动化测试框架 - Robot Framework

一、什么是 Robot Framework&#xff1f; 1. Robot Framework 的历史由来 Robot Framework是一种通用的自动化测试框架&#xff0c;最早由Pekka Klrck在2005年开发&#xff0c;并由Nokia Networks作为内部工具使用。后来&#xff0c;该项目以开源形式发布&#xff0c;并得到了…

vue+vant图片压缩后上传

vuevant图片压缩后上传 vue文件写入 <template><div class"home"><van-field input-align"left"><template #input><van-uploaderv-model"fileList.file":after-read"afterRead":max-count"5":…

ElasticSearch| 非集群两个ElasticSearch数据同步解决方案(Logstash)

需求: 传统单体项目只有两台服务,项目与中间件都在同一台服务器上部署. 项目、数据库、ES、Redis等都在一个服务器上,使用keepalived生成虚拟IP供前段访问服务, 其他不讲 这个时候就需要保证两个服务器之间ES数据同步了,ES没有主备只有集群 最需要少三台服务器非偶数服务器, 这…

中国各城市土地利用类型(城市功能)矢量数据集(shp)

中国各城市土地利用类型(城市功能)数据集 时间:2018年 全国范围的城市用地类型数据(居住/商业/交通用地等共计11类) 分类:居住用地、商业用地、工业用地、医疗设施用地、体育文化设施用地、交通场站用地、绿地等用地类型 含城市编码、一级分类5个、二级分类11个 数据按…

纷享销客BI,助力企业激活数据价值,科学企业决策

10月25日上午&#xff0c;国家数据局正式挂牌成立&#xff0c;这标志着我国数字经济发展将进入新的发展阶段&#xff0c;也将有力促进数据要素技术创新、开发利用和有效治理&#xff0c;以数据强国支撑数字中国的建设。伴随数据作为企业新的生产要素的意义不断凸显&#xff0c;…

SpringBoot----自定义Start(自定义依赖)

一&#xff0c;为什么要定义Start 向阿里云OSS如果我们要引入的话很麻烦&#xff0c;所以我们可以自定义一些组件&#xff0c; 然后我们只需要在pom文件中引入对应的坐标就可以 二&#xff0c;怎么定义&#xff08;以阿里云OSS为例&#xff09; 1&#xff0c; 定义两个组件模块…

pytorch打印模型结构和参数

两种方式 当我们使用pytorch进行模型训练或测试时&#xff0c;有时候希望能知道模型每一层分别是什么&#xff0c;具有怎样的参数。此时我们可以将模型打印出来&#xff0c;输出每一层的名字、类型、参数等。 常用的命令行打印模型结构的方法有两种&#xff1a; 一是直接prin…

代码随想录图论 第五天| 841.钥匙和房间 463. 岛屿的周长

代码随想录图论 第五天| 841.钥匙和房间 一、 841.钥匙和房间 题目链接&#xff1a;https://leetcode.cn/problems/keys-and-rooms/ 思路&#xff1a;钥匙就是索引&#xff0c;遍历过就标记&#xff0c;每拿到一个房间的钥匙&#xff0c;直接for循环递归遍历&#xff0c;深度…

电脑入门:电脑专业英语500词,供新手参考

1. file n. 文件;v. 保存文件 2. command n. 命令,指令 3. use v. 使用,用途 4. program n. 程序 5. line n. (数据,程序)行,线路 6. if conj. 如果 7. display vt. 显示,显示器 8. set v. 设置,n. 集合 9. key n. 键,关键字,关键码 10. list n. 列表,显示,…

‘error:03000086:digital envelope routines::initialization“处理方法

1. 现象&#xff1a; opensslErrorStack: [ error:03000086:digital envelope routines::initialization error ],library: digital envelope routines,reason: unsupported,code: ERR_OSSL_EVP_UNSUPPORTED 2.解决方法 2.1 在packet.json中添加 set NODE_OPTIONS--openss…

2023 CSP-J题解

T1 小苹果 题目描述 理论分析 对于第一问&#xff0c;我们按照题意模拟每天取走的是多少个苹果即可。由于每天可以取走原来的,数据范围没次会降低到&#xff0c;也就是说这样的过程的时间复杂度可以用下式表示&#xff1a; 对于本题的数据范围n<1e9&#xff0c;这个时间复杂…

二叉树问题——平衡二叉树问题

摘要 本博文主要介绍平衡二叉树问题包括&#xff0c;二叉树的高度差&#xff0c;是否为平衡二叉树&#xff0c;有序链表转二叉搜索树&#xff0c;将二叉搜索树变平衡等。 一、平衡二叉树详解 1.1 判断二叉树是否平衡 /*** Definition for a binary tree node.* public class…