基于javaweb+mysql的ssm+maven毕业设计管理系统(java+ssm+jsp+jquery+mysql)
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的SSM+Maven毕业设计管理系统(java+ssm+jsp+jquery+mysql)
项目介绍
本项目包含三种角色:管理员、学生用户角色与教师角色。 管理员角色包含以下功能: 学生信息管理、教师信息管理。 用户角色包含以下功能: 查看通知公告,登录,登录后学生主页面,选择课题,选择课题后状态为等待老师去人状态,填写开题报告,提交中期检查,提交免答辩申请,上传论文等功能。 教师角色包含以下功能: 教师角色登录,教师首页,申报课题,审批学生选题,审核开题报告,审核中期检查,初审免答辩申请,审核论文是否过关,综合打分等功能。
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.数据库:5.7/8.0版本均可; 6.是否Maven项目:是;
技术栈
- 后端:Spring+SpringMVC+Mybatis 2. 前端:JSP+CSS+JavaScript+jQuery
使用说明
- 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中jdbc.properties配置文件中的数据库配置改为自己的配置; 4. 运行项目,输入localhost:8080/ 登录
if(student.getProjectId()!=null&&student.getProjectId()!=0) {
Student stuAndMdb = studentService.getStudentAndMdbBySid(student.getStudentId());
Map<String, Object> map=new HashMap<>();
map.put("user", stuAndMdb.getUser());
map.put("classInfo", stuAndMdb.getClassInfo());
map.put("project", stuAndMdb.getProject());
map.put("mdb", stuAndMdb.getMdb());
map.put("teacher", stuAndMdb.getTeacher());
try {
WordUtils.exportMillCertificateWord(request,response,map,"免答辩申请表.ftl","免答辩申请表.doc");
} catch (IOException e) {
e.printStackTrace();
}
return;
}
}
}
}
}
//下载中期检查
@ResponseBody
@RequestMapping(value="/downZqjc",method=RequestMethod.GET)
public void downZqjc(HttpSession session,
HttpServletRequest request,HttpServletResponse response,
String studentId) {
if(studentId!=null&&!studentId.isEmpty()) {
Student stuAndZqjc = studentService.getStudentAndZqjcBySid(studentId);
Map<String, Object> map=new HashMap<>();
map.put("user", stuAndZqjc.getUser());
map.put("project", stuAndZqjc.getProject());
map.put("zqjc", stuAndZqjc.getZqjc());
map.put("teacher", stuAndZqjc.getTeacher());
try {
WordUtils.exportMillCertificateWord(request,response,map,"中期检查表.ftl","中期检查表.doc");
} catch (IOException e) {
e.printStackTrace();
}
return;
}else {
}
private String toUI(HttpSession session,String account,String password) {
User user = userService.login(account, password);
if(user!=null) {
if(2==user.getUserRoles()) {
session.setAttribute("user", user);
return "student/sindex.html";
}
if(1==user.getUserRoles()) {
session.setAttribute("user", user);
return "teacher/tindex.html";
}
if(3==user.getUserRoles()) {
session.setAttribute("admin", user);
return "admin/showStudent";
}
}
return "passwordError";
}
@RequestMapping("/logout")
public String logout(HttpSession session) {
session.removeAttribute("user");
return "redirect:login.html";
}
@ResponseBody
@RequestMapping(value="/updateInfo",method=RequestMethod.POST)
public boolean updateStudentInfo(User user,
@RequestParam(value="portrait",required=false)MultipartFile portrait,HttpServletRequest request) {
if(portrait!=null&&portrait.getSize()>0) {
if(portrait.getSize()>(10*1024*1024)) {
return false;
}
String filename=portrait.getOriginalFilename();
String dbPath="/graduation/portrait/"+user.getUserId();
String basePath=Thread.currentThread().getContextClassLoader().getResource("").getPath().substring(0,Thread.currentThread().getContextClassLoader().getResource("").getPath().length()-16)+"/portrait/"+user.getUserId();
if(!new File(basePath).exists()) {
new File(basePath).mkdirs();
}
File portraitFile=new File(basePath,filename);
try {
portrait.transferTo(portraitFile);
if(student!=null) {
return studentService.getThisStudentScore(student.getStudentId());
}
}
return -1;
}
@ResponseBody
@RequestMapping("/getStudentAndMdbBySid")
public Student getStudentAndMdbBySid(String studentId) {
return studentService.getStudentAndMdbBySid(studentId);
}
//下载开题报告
@ResponseBody
@RequestMapping(value="/downKtbg",method=RequestMethod.GET)
public void downKtbg(HttpSession session,
HttpServletRequest request,HttpServletResponse response,
String studentId) {
if(studentId!=null&&!studentId.isEmpty()) {
Student stuAndKtbg = studentService.getStudentAndKtbgBySid(studentId);
Map<String, Object> map=new HashMap<>();
map.put("user", stuAndKtbg.getUser());
map.put("classInfo", stuAndKtbg.getClassInfo());
map.put("project", stuAndKtbg.getProject());
map.put("ktbg", stuAndKtbg.getKtbg());
try {
WordUtils.exportMillCertificateWord(request,response,map,"开题报告.ftl","开题报告.doc");
} catch (IOException e) {
e.printStackTrace();
}
return;
}else {
User user=(User) session.getAttribute("user");
if(user!=null) {
Student student = studentService.getStudentByUserId(user.getUserId());
if(student!=null) {
if(student.getProjectId()!=null&&student.getProjectId()!=0) {
Student stuAndKtbg = studentService.getStudentAndKtbgBySid(student.getStudentId());
Map<String, Object> map=new HashMap<>();
map.put("user", stuAndKtbg.getUser());
map.put("classInfo", stuAndKtbg.getClassInfo());
map.put("project", stuAndKtbg.getProject());
map.put("ktbg", stuAndKtbg.getKtbg());
try {
WordUtils.exportMillCertificateWord(request,response,map,"开题报告.ftl","开题报告.doc");
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
@ResponseBody
@RequestMapping(value="/insertOrUpdate",method=RequestMethod.POST)
public boolean insertOrUpdate(DaBian daBian) {
if(daBian.getId()==null) {
return dabianService.insertDabian(daBian);
}else {
return dabianService.updateDabian(daBian);
}
}
}
@Controller
@RequestMapping("/informController")
public class InformController {
@Autowired
private InformService informService;
@ResponseBody
@RequestMapping(value="/getSubInform",method=RequestMethod.GET)
public PageInfo getSubInform(int pageNum,int pageSize,int navigatePages) {
//传入当前页和每页记录数
PageHelper.startPage(pageNum, pageSize);
response.setHeader("Content-Disposition", "attachment;filename="
// .concat(String.valueOf(URLEncoder.encode(fileName, "UTF-8"))));
.concat(String.valueOf(Utils.filenameEncoding(fileName, request))));
out = response.getOutputStream();
byte[] buffer = new byte[512]; // 缓冲区
int bytesToRead = -1;
// 通过循环将读入的Word文件的内容输出到浏览器中
while((bytesToRead = fin.read(buffer)) != -1) {
out.write(buffer, 0, bytesToRead);
}
} finally {
if(fin != null) fin.close();
if(out != null) out.close();
if(file != null) {
//file.delete(); // 删除临时文件
}
}
}
private static File createDoc(Map<?, ?> dataMap, Template template) {
String name = "test.doc";
File f = new File(name);
Template t = template;
try {
// 这个地方不能使用FileWriter因为需要指定编码类型否则生成的Word文档会因为有无法识别的编码而无法打开
Writer w = new OutputStreamWriter(new FileOutputStream(f), "utf-8");
t.process(dataMap, w);
w.close();
} catch (Exception ex) {
ex.printStackTrace();
throw new RuntimeException(ex);
}
return f;
}
}
@Controller
@RequestMapping("/studentController")
public class StudentController {
@Autowired
private StudentService studentService;
@Autowired
private ProjectService projectService;
@ResponseBody
@RequestMapping("/hasChooseProject")
public Student hasChooseProject(HttpSession session,HttpServletResponse response) {
response.setContentType("application/json;charset=utf-8");
User user=(User) session.getAttribute("user");
if(user!=null) {
Student student = studentService.getStudentByUserId(user.getUserId());
if(student!=null) {
Project project = projectService.getProjectByStudentId(student.getStudentId());
if(project!=null) {
return student;
}
}
}
return null;
}
@ResponseBody
@RequestMapping("/findTeacher")
public Teacher findTeacher(HttpSession session) {
User user = (User) session.getAttribute("user");
if(user!=null) {
Teacher teacher = teacherService.findTeacherByUserId(user.getUserId());
if(teacher!=null) {
Teacher teacherPlus = teacherService.findTeacherByTeacherId(teacher.getTeacherId());
if(teacherPlus!=null) {
return teacherPlus;
}
}
}
return null;
}
@ResponseBody
@RequestMapping("/getStudentByTeacherId")
public List<Student> getStudentByTeacherId(HttpSession session){
User user = (User) session.getAttribute("user");
if(user!=null) {
Teacher teacher = teacherService.findTeacherByUserId(user.getUserId());
if(teacher!=null) {
return teacherService.getStudentByTeacherId(teacher.getTeacherId());
}
}
return null;
}
@ResponseBody
@RequestMapping("/getStudentByTeacherId2")
public List<Student> getStudentByTeacherId2(HttpSession session){
User user = (User) session.getAttribute("user");
if(user!=null) {
Teacher teacher = teacherService.findTeacherByUserId(user.getUserId());
if(teacher!=null) {
return teacherService.getStudentByTeacherId2(teacher.getTeacherId());
}
}
return null;
if(page*size>list.size()) {
end = list.size();
}else {
end = page*size;
}
return list.subList((page-1)*size, end);
}
static int getPageSize(List<Student> list,int size) {
if(list.size() % size == 0) {
return list.size()/size;
}else {
return list.size()/size + 1;
}
}
static List<Teacher> getTeacherList(List<Teacher> list,int page,int size){
int end = 0;
int pages = list.size()/size + 1;
if(page>pages) {
page = pages - 1;
}
if(page < 1) {
page = 1;
}
if(page*size>list.size()) {
end = list.size();
}else {
end = page*size;
}
return list.subList((page-1)*size, end);
}
static int getTeacherPageSize(List<Teacher> list,int size) {
if(list.size() % size == 0) {
return list.size()/size;
}else {
File f = new File(name);
Template t = template;
try {
// 这个地方不能使用FileWriter因为需要指定编码类型否则生成的Word文档会因为有无法识别的编码而无法打开
Writer w = new OutputStreamWriter(new FileOutputStream(f), "utf-8");
t.process(dataMap, w);
w.close();
} catch (Exception ex) {
ex.printStackTrace();
throw new RuntimeException(ex);
}
return f;
}
}
@Controller
@RequestMapping("/projectController")
public class ProjectController {
@Autowired
private ProjectService projectService;
@Autowired
private TeacherService teacherService;
@Autowired
private StudentService studentService;
@ResponseBody
@RequestMapping(value="/getProjectListByTeacherId",method=RequestMethod.GET)
public PageInfo<Project> getProjectListByTeacherId(@RequestParam(required=true)String teacherId,
return "passwordError";
}
//用户被锁定
catch (LockedAccountException e) {
return "passwordError";
}
}else {
return toUI(session,account,password);
}
}else {
return "randStrError";
}
}
private String toUI(HttpSession session,String account,String password) {
User user = userService.login(account, password);
if(user!=null) {
if(2==user.getUserRoles()) {
session.setAttribute("user", user);
return "student/sindex.html";
}
if(1==user.getUserRoles()) {
session.setAttribute("user", user);
return "teacher/tindex.html";
}
if(3==user.getUserRoles()) {
session.setAttribute("admin", user);
return "admin/showStudent";
}
}
return "passwordError";
}
@RequestMapping("/logout")
public String logout(HttpSession session) {
session.removeAttribute("user");
return "redirect:login.html";
}
@ResponseBody
@RequestMapping(value="/updateInfo",method=RequestMethod.POST)
public boolean updateStudentInfo(User user,
@RequestParam(value="portrait",required=false)MultipartFile portrait,HttpServletRequest request) {
if(portrait!=null&&portrait.getSize()>0) {
if(portrait.getSize()>(10*1024*1024)) {
return false;
Student student=studentService.projectNum(studentId);
if(student!=null) {
if(student.getProjectNum()==1) {
return true;
}
}
return false;
}
@ResponseBody
@RequestMapping(value="/updateNoProjectNum",method=RequestMethod.PUT)
public boolean updateNoProjectNum(String studentId,String projectId) {
boolean status1 = studentService.updateNoProjectNum(studentId);
boolean status2 = projectService.updateNoStudent(projectId);
if(status1&&status2) {
return true;
}
return false;
}
@ResponseBody
@RequestMapping("/getStuAndProject")
public Student getStuAndProject(HttpSession session,HttpServletResponse response,String studentId) {
if(studentId!=null&&studentId!="") {
return studentService.getStuAndProject(studentId);
}
User user=(User) session.getAttribute("user");
if(user!=null) {
Student student = studentService.getStudentByUserId(user.getUserId());
if(student!=null) {
if(student.getProjectId()!=null&&student.getProjectId()!=0) {
Student newStu = studentService.getStuAndProject(student.getStudentId());
return newStu;
}
}
}
return new Student();
}
@ResponseBody
@RequestMapping("/getStuAndProjectAndTeacher")
public Student getStuAndProjectAndTeacher(HttpSession session,HttpServletResponse response) {
User user=(User) session.getAttribute("user");
Student student = studentMapper.selectByPrimaryKey(id);
studentMapper.deleteByPrimaryKey(id);
userMapper.deleteByPrimaryKey(student.getUserId());
int size = 8;
int page = 1;
List<Student> students = new ArrayList<>();
students = studentMapper.selectByExample(new StudentExample());
int pagesize = getPageSize(students, size);
students = getList(students, page, size);
if(page<=0) {
page = 1;
}
if(page>=pagesize) {
page = pagesize;
}
for(Student dbStudent:students) {
User user = userMapper.selectByPrimaryKey(dbStudent.getUserId());
if(user.getUserGender() == 1) {
user.setSex("男");
}else {
user.setSex("女");
}
dbStudent.setUser(user);
dbStudent.setTeacher(teacherMapper.findTeacherByTeacherId(dbStudent.getTeacherId()));;
}
model.addObject("students", students);
model.addObject("pagesize", pagesize);
model.addObject("nowpage", page);
model.setViewName("/admin/showStudent.jsp");
return model;
}
// 添加学生
@RequestMapping("/addStudentCommit")
public ModelAndView addStudentCommit(ModelAndView model, User addUser, String sid) throws Exception {
addUser.setUserPassword(Utils.md5("123456"));
addUser.setUserId(UUID.randomUUID().toString().replaceAll("-", ""));
addUser.setUserRoles(2);
userMapper.insertSelective(addUser);
Student addStudent = new Student();
addStudent.setClassId(1);
addStudent.setClassInfo(classInfoMapper.selectByPrimaryKey(1));
addStudent.setStudentId(UUID.randomUUID().toString().replaceAll("-", ""));
addStudent.setUserId(addUser.getUserId());
studentMapper.insertSelective(addStudent);
int page = 1;
//页码对象
//设置总页数
int size = 8;
@Controller
@RequestMapping("/admin")
public class AdminController {
@Autowired
StudentMapper studentMapper;
@Autowired
TeacherMapper teacherMapper;
@Autowired
ClassInfoMapper classInfoMapper;
@Autowired
DeptMapper deptMapper;
@Autowired
UserMapper userMapper;
@RequestMapping("/showStudent")
public ModelAndView showStudent(ModelAndView model, Integer page) throws Exception {
//页码对象
//设置总页数
int size = 8;
if(page == null) {
page = 1;
}
List<Student> students = new ArrayList<>();
students = studentMapper.selectByExample(new StudentExample());
int pagesize = getPageSize(students, size);
students = getList(students, page, size);
if(page<=0) {
page = 1;
}
if(page>=pagesize) {
page = pagesize;
}
for(Student student:students) {
User user = userMapper.selectByPrimaryKey(student.getUserId());
if(user.getUserGender() == 1) {
user.setSex("男");
}else {
user.setSex("女");
}
student.setUser(user);
student.setTeacher(teacherMapper.findTeacherByTeacherId(student.getTeacherId()));;
}
model.addObject("students", students);
model.addObject("pagesize", pagesize);
model.addObject("nowpage", page);
}
return null;
}
@ResponseBody
@RequestMapping("/getStudentByTeacherId2")
public List<Student> getStudentByTeacherId2(HttpSession session){
User user = (User) session.getAttribute("user");
if(user!=null) {
Teacher teacher = teacherService.findTeacherByUserId(user.getUserId());
if(teacher!=null) {
return teacherService.getStudentByTeacherId2(teacher.getTeacherId());
}
}
return null;
}
@ResponseBody
@RequestMapping(value="/updateTeacherInfo",method=RequestMethod.POST)
public boolean updateTeacherInfo(Teacher teacher,
@RequestParam(value="portrait",required=false)MultipartFile portrait,HttpServletRequest request) {
if(portrait!=null&&portrait.getSize()>0) {
if(portrait.getSize()>(10*1024*1024)) {
return false;
}
String filename=portrait.getOriginalFilename();
String dbPath=request.getServletContext().getContextPath()+"/portrait/"+teacher.getUser().getUserId();
String basePath=request.getServletContext().getRealPath("/portrait/"+teacher.getUser().getUserId());
new File(basePath).mkdir();
File portraitFile=new File(basePath,filename);
try {
portrait.transferTo(portraitFile);
teacher.getUser().setUserPortrait(dbPath+"/"+filename);
return teacherService.updateTeacherInfo(teacher);
} catch (Exception e) {
e.printStackTrace();
}
}
return teacherService.updateTeacherInfo(teacher);
}
@ResponseBody
@RequestMapping("/getTeacherYansouInfo")
public YansouTeam getTeacherYansouInfo(HttpSession session){
User user = (User) session.getAttribute("user");
if(user!=null) {
Teacher teacher = teacherService.findTeacherByUserId(user.getUserId());
if(teacher!=null) {
return teacherService.getTeacherYansouInfo(teacher.getTeacherId());
}
}
return null;
}
@RequestMapping("/gotoTstudentscore")
public String gotoTstudentscore(@RequestParam(required=true)String studentId) {
return "/teacher/tstudentscore.html?studentId="+studentId;
}
@ResponseBody
@RequestMapping(value="/updateScore",method=RequestMethod.PUT)
public boolean updateScore(Student student) {
return studentService.updateStudent(student);
}
@ResponseBody
@RequestMapping("/getThisStudentScore")
public Integer getThisStudentScore(HttpSession session) {
User user=(User) session.getAttribute("user");
if(user!=null) {
Student student = studentService.getStudentByUserId(user.getUserId());
if(student!=null) {
return studentService.getThisStudentScore(student.getStudentId());
}
}
return -1;
}
@ResponseBody
@RequestMapping("/getStudentAndMdbBySid")
public Student getStudentAndMdbBySid(String studentId) {
return studentService.getStudentAndMdbBySid(studentId);
}
//下载开题报告
@ResponseBody
@RequestMapping(value="/downKtbg",method=RequestMethod.GET)
public void downKtbg(HttpSession session,
HttpServletRequest request,HttpServletResponse response,
String studentId) {
}
@RequestMapping("/gotoTstudentscore")
public String gotoTstudentscore(@RequestParam(required=true)String studentId) {
return "/teacher/tstudentscore.html?studentId="+studentId;
}
@ResponseBody
@RequestMapping(value="/updateScore",method=RequestMethod.PUT)
public boolean updateScore(Student student) {
return studentService.updateStudent(student);
}
@ResponseBody
@RequestMapping("/getThisStudentScore")
public Integer getThisStudentScore(HttpSession session) {
User user=(User) session.getAttribute("user");
if(user!=null) {
Student student = studentService.getStudentByUserId(user.getUserId());
if(student!=null) {
return studentService.getThisStudentScore(student.getStudentId());
}
}
return -1;
}
@ResponseBody
@RequestMapping("/getStudentAndMdbBySid")
public Student getStudentAndMdbBySid(String studentId) {
return studentService.getStudentAndMdbBySid(studentId);
}
//下载开题报告
@ResponseBody
@RequestMapping(value="/downKtbg",method=RequestMethod.GET)
public void downKtbg(HttpSession session,
HttpServletRequest request,HttpServletResponse response,
String studentId) {
if(studentId!=null&&!studentId.isEmpty()) {
Student stuAndKtbg = studentService.getStudentAndKtbgBySid(studentId);
Map<String, Object> map=new HashMap<>();
map.put("user", stuAndKtbg.getUser());
map.put("classInfo", stuAndKtbg.getClassInfo());
map.put("project", stuAndKtbg.getProject());
map.put("ktbg", stuAndKtbg.getKtbg());
return null;
}
@ResponseBody
@RequestMapping("/getStudentByTeacherId2")
public List<Student> getStudentByTeacherId2(HttpSession session){
User user = (User) session.getAttribute("user");
if(user!=null) {
Teacher teacher = teacherService.findTeacherByUserId(user.getUserId());
if(teacher!=null) {
return teacherService.getStudentByTeacherId2(teacher.getTeacherId());
}
}
return null;
}
@ResponseBody
@RequestMapping(value="/updateTeacherInfo",method=RequestMethod.POST)
public boolean updateTeacherInfo(Teacher teacher,
@RequestParam(value="portrait",required=false)MultipartFile portrait,HttpServletRequest request) {
if(portrait!=null&&portrait.getSize()>0) {
if(portrait.getSize()>(10*1024*1024)) {
return false;
}
String filename=portrait.getOriginalFilename();
String dbPath=request.getServletContext().getContextPath()+"/portrait/"+teacher.getUser().getUserId();
String basePath=request.getServletContext().getRealPath("/portrait/"+teacher.getUser().getUserId());
new File(basePath).mkdir();
File portraitFile=new File(basePath,filename);
try {
portrait.transferTo(portraitFile);
teacher.getUser().setUserPortrait(dbPath+"/"+filename);
return teacherService.updateTeacherInfo(teacher);
} catch (Exception e) {
e.printStackTrace();
}
}
return teacherService.updateTeacherInfo(teacher);
}
@ResponseBody
@RequestMapping("/getTeacherYansouInfo")
public YansouTeam getTeacherYansouInfo(HttpSession session){
User user = (User) session.getAttribute("user");
if(user!=null) {
Teacher teacher = teacherService.findTeacherByUserId(user.getUserId());
if(teacher!=null) {
return teacherService.getTeacherYansouInfo(teacher.getTeacherId());
}
}
return null;
Student student = studentMapper.selectByPrimaryKey(id);
User user = userMapper.selectByPrimaryKey(student.getUserId());
if(user.getUserGender() == 1) {
user.setSex("男");
}else {
user.setSex("女");
}
student.setUser(user);
model.addObject("student", student);
model.setViewName("/admin/editStudent.jsp");
return model;
}
@RequestMapping("/editStudentCommit")
public ModelAndView editStudentCommit(ModelAndView model, User user, String sid) throws Exception {
UserExample userExample = new UserExample();
cn.lynu.model.UserExample.Criteria criteria = userExample.createCriteria();
criteria.andUserIdEqualTo(user.getUserId());
userMapper.updateByExampleSelective(user, userExample);
user = userMapper.selectByPrimaryKey(user.getUserId());
if(user.getUserGender() == 1) {
user.setSex("男");
}else {
user.setSex("女");
}
Student student = studentMapper.selectByPrimaryKey(sid);
student.setUser(user);
model.addObject("student", student);
model.setViewName("/admin/editStudent.jsp");
return model;
}
@RequestMapping("/removeStudent")
public ModelAndView removeStudent(ModelAndView model, String id) throws Exception {
Student student = studentMapper.selectByPrimaryKey(id);
studentMapper.deleteByPrimaryKey(id);
userMapper.deleteByPrimaryKey(student.getUserId());
int size = 8;
int page = 1;
List<Student> students = new ArrayList<>();
students = studentMapper.selectByExample(new StudentExample());
int pagesize = getPageSize(students, size);
students = getList(students, page, size);