基于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/ 登录
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;
}
@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;
@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);
@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 {
}
model.addObject("students", students);
model.addObject("pagesize", pagesize);
model.addObject("nowpage", page);
model.setViewName("/admin/showStudent.jsp");
return model;
}
@RequestMapping("/showTeacher")
public ModelAndView showTeacher(ModelAndView model, Integer page) throws Exception {
//页码对象
//设置总页数
int size = 8;
if(page == null) {
page = 1;
}
List<Teacher> teachers = new ArrayList<>();
teachers = teacherMapper.selectByExample(new TeacherExample());
int pagesize = getTeacherPageSize(teachers, size);
teachers = getTeacherList(teachers, page, size);
if(page<=0) {
page = 1;
}
if(page>=pagesize) {
page = pagesize;
}
for(Teacher teacher:teachers) {
User user = userMapper.selectByPrimaryKey(teacher.getUserId());
if(user.getUserGender() == 1) {
user.setSex("男");
}else {
user.setSex("女");
}
teacher.setUser(user);
}
model.addObject("teachers", teachers);
model.addObject("pagesize", pagesize);
model.addObject("nowpage", page);
model.setViewName("/admin/showTeacher.jsp");
return model;
}
@RequestMapping("/editTeacher")
public ModelAndView editTeacher(ModelAndView model, String id) throws Exception {
Teacher teacher = teacherMapper.selectByPrimaryKey(id);
User user = userMapper.selectByPrimaryKey(teacher.getUserId());
if(user.getUserGender() == 1) {
user.setSex("男");
}else {
user.setSex("女");
}
teacher.setUser(user);
model.addObject("pagesize", pagesize);
model.addObject("nowpage", page);
model.setViewName("/admin/showStudent.jsp");
return model;
}
@RequestMapping("/editStudent")
public ModelAndView editStudent(ModelAndView model, String id) throws Exception {
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<>();
@Controller
@RequestMapping("/downController")
public class DownController {
@Autowired
private DownService downService;
@ResponseBody
@RequestMapping(value="/getSubDown",method=RequestMethod.GET)
public PageInfo getSubDown(@RequestParam(defaultValue="1")int pageNum,
@RequestParam(defaultValue="6")int pageSize,@RequestParam(defaultValue="1")int navigatePages) {
PageHelper.startPage(pageNum, pageSize);
List<Down> list = downService.getAllDown();
return new PageInfo<>(list, navigatePages);
}
@RequestMapping("/downloadResource")
public @ResponseBody String downloadResource(HttpSession session,HttpServletResponse response,
HttpServletRequest request,@RequestParam(required=true)String fileName) throws Exception {
if(fileName==null||fileName=="") {
return null;
@ResponseBody
@RequestMapping(value="/findTeacherByTeacherName",method=RequestMethod.GET)
public PageInfo<Teacher> findTeacherByTeacherName(String teacherName,HttpServletResponse response,
@RequestParam(defaultValue="1")int pageNum,@RequestParam(defaultValue="8")int pageSize){
response.setContentType("application/json");
PageHelper.startPage(pageNum, pageSize);
List<Teacher> list = teacherService.findTeacherByTeacherName(teacherName);
return new PageInfo<>(list);
}
@ResponseBody
@RequestMapping("/findTeacherAndProject")
public Teacher findTeacherAndProject(HttpSession session) {
User user = (User) session.getAttribute("user");
if(user!=null) {
Teacher teacher = teacherService.findTeacherByUserId(user.getUserId());
if(teacher!=null) {
Teacher teacherPlus = teacherService.findTeacherAndProject(teacher.getTeacherId());
if(teacherPlus!=null) {
return teacherPlus;
}
}
}
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());
}
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);
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("女");
}
private static Configuration configuration = null;
//这里注意的是利用WordUtils的类加载器动态获得模板文件的位置
private static final String templateFolder = WordUtils.class.getClassLoader().getResource("../").getPath()+"/templete/";
static {
configuration = new Configuration();
configuration.setDefaultEncoding("utf-8");
try {
configuration.setDirectoryForTemplateLoading(new File(templateFolder));
} catch (IOException e) {
e.printStackTrace();
}
}
private WordUtils() {
throw new AssertionError();
}
public static void exportMillCertificateWord(HttpServletRequest request, HttpServletResponse response,
Map map, String templeteName, String fileName) throws IOException {
//Template freemarkerTemplate = configuration.getTemplate("开题报告.ftl");
Template freemarkerTemplate = configuration.getTemplate(templeteName);
File file = null;
InputStream fin = null;
ServletOutputStream out = null;
try {
// 调用工具类的createDoc方法生成Word文档
file = createDoc(map,freemarkerTemplate);
fin = new FileInputStream(file);
// response.setCharacterEncoding("utf-8");
response.setContentType("application/msword;charset=utf-8");
// 设置浏览器以下载的方式处理该文件名
// String fileName = "开题报告.doc";
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 {
@RequestMapping(value="/insertSelective",method=RequestMethod.POST)
public boolean insertSelective(Mdb mdb) {
if(mdb.getMdbId()==null) {
return mdbService.insertSelective(mdb);
}else {
return mdbService.updateColumnById(mdb);
}
}
@ResponseBody
@RequestMapping("/getMdbByStudentId")
public Mdb getMdbByStudentId(String studentId,HttpSession session) {
if(studentId!=null&&!"".equals(studentId)) {
Mdb mdb=mdbService.getMdbByStudentId(studentId);
if(mdb!=null) {
return mdb;
}
}else {
User user=(User) session.getAttribute("user");
if(user!=null) {
Student student = studentService.getStudentByUserId(user.getUserId());
if(student!=null) {
Mdb mdb=mdbService.getMdbByStudentId(student.getStudentId());
if(mdb!=null) {
return mdb;
}
}
}
}
return new Mdb();
}
@ResponseBody
@RequestMapping(value="/updateColumn",method=RequestMethod.PUT)
public boolean updateColumn(Mdb mdb) {
return mdbService.updateColumn(mdb);
}
@ResponseBody
@RequestMapping(value="/updateColumnById",method=RequestMethod.PUT)
public boolean updateColumnById(Mdb mdb) {
return mdbService.updateColumnById(mdb);
}
@RequestMapping("/gotoTsureMdb")
public ModelAndView gotoTsureMdb(@RequestParam(required=true)String studentId) {
return new ModelAndView("/teacher/tsuremdb.html?studentId="+studentId);
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();
}
}
}
}
return;
}
}
//下载免答辩
@ResponseBody
@RequestMapping(value="/downMdb",method=RequestMethod.GET)
public void downMdb(HttpSession session,
HttpServletRequest request,HttpServletResponse response,
String studentId) {
if(studentId!=null&&!studentId.isEmpty()) {
Student stuAndMdb = studentService.getStudentAndMdbBySid(studentId);
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;
}else {
User user=(User) session.getAttribute("user");
if(user!=null) {
Student student = studentService.getStudentByUserId(user.getUserId());
if(student!=null) {
@RequestMapping("/downloadResource")
public @ResponseBody String downloadResource(HttpSession session,HttpServletResponse response,
HttpServletRequest request,@RequestParam(required=true)String fileName) throws Exception {
if(fileName==null||fileName=="") {
return null;
}
String dataDir=request.getServletContext().getRealPath("/WEB-INF/file");
Path path=Paths.get(dataDir, fileName);
if(Files.exists(path)) {
response.setContentType("application/octet-stream");
response.addHeader("Content-Disposition", "attachment;filename="+Utils.filenameEncoding(fileName, request));
try {
Files.copy(path, response.getOutputStream());
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
}
@Controller
@RequestMapping("/mdbController")
public class MdbController {
@Autowired
private MdbService mdbService;
@Autowired
@RequestMapping(value="/updateProjectNum",method=RequestMethod.PUT)
public boolean updateProjectNum(String studentId,String teacherId,String projectId) {
return studentService.updateProjectNum(studentId,teacherId,projectId);
}
@ResponseBody
@RequestMapping("/projectNum")
public boolean projectNum(String studentId) {
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;
}
}
}
}
public static void main(String[] args) {
System.out.println(md5("123456"));
}
}
@Controller
@RequestMapping("/yansouController")
public class YansouController {
@Autowired
private YansoouService yansoouService;
@Autowired
private StudentService studentService;
@ResponseBody
@RequestMapping("/selectYanSouInfoByid")
public YansouTeam selectYanSouInfoByid(HttpSession session) {
User user=(User) session.getAttribute("user");
if(user!=null) {
Student student = studentService.getStudentByUserId(user.getUserId());
if(student!=null) {
if(student.getYansouTeamId()!=null&&!student.getYansouTeamId().isEmpty()) {
return yansoouService.selectYanSouInfoByid(Integer.parseInt(student.getYansouTeamId()));
}
}
}
return null;
}
}
@Controller
@RequestMapping("/dabianController")
public class DabianController {
@Autowired
private DabianService dabianService;
@Autowired
private StudentService studentService;
@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 dabianService.getThisStudentScore(student.getStudentId());
}
}
return -1;
}
@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);
}
}
}
}
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");
if(user!=null) {
Student student = studentService.getStudentByUserId(user.getUserId());
if(student!=null) {
User user = userMapper.selectByPrimaryKey(teacher.getUserId());
if(user.getUserGender() == 1) {
user.setSex("男");
}else {
user.setSex("女");
}
teacher.setUser(user);
}
model.addObject("teachers", teachers);
model.addObject("pagesize", pagesize);
model.addObject("nowpage", page);
model.setViewName("/admin/showTeacher.jsp");
return model;
}
@RequestMapping("/editTeacher")
public ModelAndView editTeacher(ModelAndView model, String id) throws Exception {
Teacher teacher = teacherMapper.selectByPrimaryKey(id);
User user = userMapper.selectByPrimaryKey(teacher.getUserId());
if(user.getUserGender() == 1) {
user.setSex("男");
}else {
user.setSex("女");
}
teacher.setUser(user);
model.addObject("teacher", teacher);
model.setViewName("/admin/editTeacher.jsp");
List<Dept> list = deptMapper.selectByExample(new DeptExample());
model.addObject("depts", list);
model.setViewName("/admin/editTeacher.jsp");
return model;
}
@RequestMapping("/editTeacherCommit")
public ModelAndView editTeacherCommit(ModelAndView model, User user, String sid, String desc, String zhic, int shiyanshi) 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("女");
}
Teacher teacher = teacherMapper.selectByPrimaryKey(sid);
teacher.setZhicheng(zhic);
teacher.setTeacherDescribe(desc);
teacher.setDeptId(shiyanshi);
teacher.setDept(deptMapper.selectByPrimaryKey(shiyanshi));
teacher.setUser(user);
teacherMapper.updateByPrimaryKeySelective(teacher);