SSM框架(spring+springmvc+mybatis)+Mysql实现的高校运动会管理系统(角色分为管理员和普通用户 功能包含普通学生老师参赛、开幕广播信息查看、管理员广播器材用户赛事管理等)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: SSM框架(spring+springmvc+mybatis)+Mysql实现的高校运动会管理系统(角色分为管理员和普通用户 功能包含普通学生老师参赛、开幕广播信息查看、管理员广播器材用户赛事管理等)

SSM框架(spring+springmvc+mybatis)+Mysql

本系统为了解决高校运动会复杂流程的管理,通过分学生、教师、管理员端,实现了管理员对器材、用户、项目、院系、班级、学生、教师、成绩等管理,普通用户端可以查看运动会项目信息、可以选择参赛,极大的提升了运动会线下组织和沟通人员的繁琐。

实现功能截图

登录
请添加图片描述

管理员端:
用户管理:
请添加图片描述

学生信息
请添加图片描述
教师信息
请添加图片描述
班级信息
请添加图片描述
院系信息
请添加图片描述
器材归还登记
请添加图片描述
器材借还记录
请添加图片描述
器材采购管理
请添加图片描述
器材借用登记
请添加图片描述
运动会广播信息
请添加图片描述
运动会开幕信息
请添加图片描述
运动器材信息
请添加图片描述
开幕管理
请添加图片描述
广播管理
请添加图片描述
比赛成绩信息
请添加图片描述
比赛项目信息
请添加图片描述
成绩管理
请添加图片描述
角色管理
请添加图片描述
反馈日记
请添加图片描述
访问日记
请添加图片描述
个人信息
请添加图片描述
项目管理
请添加图片描述
学生教师角色

个人信息
请添加图片描述
我的参赛
请添加图片描述
项目列表
请添加图片描述
运动会广播信息
请添加图片描述
运动会开幕信息
请添加图片描述
运动会器材信息
请添加图片描述
主页
请添加图片描述

系统功能

本会议管理系统实现了以下功能:
1、登录
2、个人信息管理
分为管理员和普通用户(学生、老师)
管理员:
3、学生信息
4、教师管理
5、班级管理
6、院系信息
7、运动会广播信息、开幕信息、器材信息
8、广播管理
9、开幕管理
10、器材借还登记
11、器材归还记录
12、器材采购管理
13、比赛成绩信息
14、比赛项目信息
15、成绩管理
16、用户管理
17、角色管理
18、反馈日记、访问日记
学生、老师:
19、运动会广播信息、开幕信息、运动器材信息
20、项目列表、我的参赛

使用技术

数据库:mysql
开发工具:Idea(Myeclispe、Eclipse也可以)
知识点:SSM框架(spring+springmvc+mybatis)

代码

实体类
Student.java

package com.handy.domain;

import com.handy.utils.Excel.ExcelAttribute;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 公众号:程序猿矛盾体
 * 微信:Code2Life2
 */
@Data
@NoArgsConstructor
public class Student {

    /**
     * id
     */
    @ExcelAttribute(sort = 0)
    private Integer sId;
    /**
     * 学号
     */
    @ExcelAttribute(sort = 1)
    private String sNo;
    /**
     * 姓名
     */
    @ExcelAttribute(sort = 2)
    private String sName;
    /**
     * 性别
     */
    @ExcelAttribute(sort = 3)
    private Boolean sGender;

    private String sGenderStr;
    /**
     * 班级号
     */
    @ExcelAttribute(sort = 4)
    private Integer sClassid;
    /**
     * 电话号码
     */
    @ExcelAttribute(sort = 5)
    private String sPhone;
    /**
     * 电子邮箱
     */
    @ExcelAttribute(sort = 6)
    private String sEmail;
    /**
     * 身份证号
     */
    @ExcelAttribute(sort = 7)
    private String sIdcard;

    private String oSNo;

    private String Password;

    private List<Integer> RoleList;

    private Boolean Status;

    private Classes classes;

    private User user;

    public Student(String sNo, String sName, Boolean sGender, Integer sClassid, String sPhone, String sEmail, String sIdcard) {
        this.sNo = sNo;
        this.sName = sName;
        this.sGender = sGender;
        this.sClassid = sClassid;
        this.sPhone = sPhone;
        this.sEmail = sEmail;
        this.sIdcard = sIdcard;
    }

    public String getSGenderStr() {
        if (sGender == false)
            sGenderStr = "女";
        else if (sGender == true)
            sGenderStr = "男";
        return sGenderStr;
    }

    public void setSGender(Boolean sGender) {
        if (sGenderStr == "男")
            sGender = true;
        else if (sGenderStr == "女")
            sGender = false;
        this.sGender = sGender;
    }

}

Sportmeeting.java

package com.handy.domain;

import com.alibaba.fastjson.annotation.JSONField;
import com.handy.utils.Date.DateUtils;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;
import java.util.List;
/**
 * 公众号:程序猿矛盾体
 * 微信:Code2Life2
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Sportmeeting {
    /**
     * 运动会id
     */
    private Integer sId;
    /**
     * 运动会名称
     */
    private String sName;
    /**
     * 运动会主题
     */
    private String sTheme;
    /**
     * 举办地点
     */
    private String sPlace;
    /**
     * 举办时间
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date sDate;
    private String sDateStr;
    /**
     * 开始时间
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date sStarttime;
    private String sStarttimeStr;
    /**
     * 结束时间
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date sEndtime;
    private String sEndtimeStr;
    /**
     * 描述
     */
    private String sDescription;
    /**
     * 运动会开启关闭状态
     */
    private Boolean sStatus;


    private List<Broadcast> broadcast;

    public String getSDateStr() {
        if (sDate != null)
            sDateStr = DateUtils.date2String(sDate, "yyyy-MM-dd HH:mm:ss");
        return sDateStr;
    }

    public String getSStarttimeStr() {
        if (sStarttime != null)
            sStarttimeStr = DateUtils.date2String(sStarttime, "yyyy-MM-dd HH:mm:ss");
        return sStarttimeStr;
    }

    public String getSEndtimeStr() {
        if (sEndtime != null)
            sEndtimeStr = DateUtils.date2String(sEndtime, "yyyy-MM-dd HH:mm:ss");
        return sEndtimeStr;
    }

}

service层
StudentServiceImpl.java

package com.handy.service.impl;

import com.handy.dao.*;
import com.handy.domain.Borrow;
import com.handy.domain.Matches;
import com.handy.domain.Student;
import com.handy.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * 公众号:程序猿矛盾体
 * 微信:Code2Life2
 */
@Service
public class StudentServiceImpl implements StudentService {

    @Autowired
    private StudentMapper studentMapper;

    @Autowired
    private MatchesMapper matchesMapper;

    @Autowired
    private BorrowMapper borrowMapper;

    @Autowired
    private RoleUserMapper roleUserMapper;

    @Autowired
    private UserMapper userMapper;

    @Autowired
    private PasswordEncoder passwordEncoder;

    @Autowired
    private RoleMapper roleMapper;

    @Override
    public List<Student> findAll() {
        return studentMapper.findAll();
    }

    @Override
    public Student selectByPK(Integer id) {
        return studentMapper.selectByPK(id);
    }


    @Override
    public Map<String, Object> findDetailsBysId(Integer sId) {
        Map<String, Object> map = new HashMap<>();

        Student student = studentMapper.selectByPK(sId);
        map.put("student", student);

        String no = studentMapper.selectsNoBysId(sId);
        List<Matches> matchesList = matchesMapper.selectBymNo(no);
        map.put("matchesList", matchesList);

        List<Borrow> borrowList = borrowMapper.selectBybNo(no);
        map.put("borrowList", borrowList);

        return map;

    }


    @Override
    public void deleteByPK(String[] sNo) {
        if (sNo != null && sNo.length != 0) {
            for (String id : sNo) {
                studentMapper.deleteByPK(id);
            }
        }
    }

    @Override
    public List<Student> exportExcel() {
        return studentMapper.findAll();
    }

    @Override
    public void insert(Student student) {
        String newPassword = passwordEncoder.encode(student.getPassword());
        userMapper.insert(student.getSNo(), newPassword, student.getStatus());
        List<Integer> roleList = student.getRoleList();
        if (roleList != null && roleList.size() != 0) {
            for (Integer role : roleList) {
                roleUserMapper.insert(role, student.getSNo());
            }
        }
        studentMapper.insert(student);
    }

    @Override
    public void update(Student student) {
        String newPassword = passwordEncoder.encode(student.getPassword());
        userMapper.updatePW(newPassword, student.getOSNo());
        userMapper.updateUstatus(student.getOSNo(), student.getStatus());

        roleUserMapper.delete(student.getOSNo());
        List<Integer> roleList = student.getRoleList();
        if (roleList != null && roleList.size() != 0) {
            for (Integer role : roleList) {
                roleUserMapper.insert(role, student.getOSNo());
            }
        }

        studentMapper.update(student);
        userMapper.updatePK(student.getSNo(), student.getOSNo());
    }

    @Override
    public Student findById(Integer id) {

        return studentMapper.findById(id);
    }

    @Override
    public List<Student> findAllStudents() {

        return studentMapper.findAllStudents();
    }

    @Override
    public void importExcel(List<Student> students) {
        studentMapper.importExcel(students);
    }
}

SportmeetingServiceImpl.java

package com.handy.service.impl;

import com.handy.dao.BroadcastMapper;
import com.handy.dao.EventMapper;
import com.handy.dao.MatchesMapper;
import com.handy.dao.SportmeetingMapper;
import com.handy.domain.Broadcast;
import com.handy.domain.Event;
import com.handy.domain.Matches;
import com.handy.domain.Sportmeeting;
import com.handy.service.SportmeetingService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * 公众号:程序猿矛盾体
 * 微信:Code2Life2
 */
@Service
public class SportmeetingServiceImpl implements SportmeetingService {

    @Autowired
    private SportmeetingMapper sportmeetingMapper;

    @Autowired
    private BroadcastMapper broadcastMapper;

    @Autowired
    private EventMapper eventMapper;

    @Autowired
    private MatchesMapper matchesMapper;

    @Override
    public List<Sportmeeting> findAll() {
        return sportmeetingMapper.findAll();
    }

    @Override
    public void deleteByPK(Integer[] sId) {
        if (sId != null && sId.length != 0) {
            for (Integer id : sId) {
                sportmeetingMapper.deleteByPK(id);
            }
        }
    }

    @Override
    public Map<String, Object> findDetailsBysId(Integer sId) {
        Map<String, Object> map = new HashMap<>();
        Sportmeeting sportmeeting = sportmeetingMapper.selectByPK(sId);
        map.put("sportmeeting", sportmeeting);
        List<Broadcast> broadcastList = broadcastMapper.selectBybSportmeetingid(sId);
        map.put("broadcastList", broadcastList);
        List<Event> eventList = eventMapper.findBysId(sId);
        map.put("eventList", eventList);
        List<Matches> matchesList = matchesMapper.findBysId(sId);
        map.put("matchesList", matchesList);
        return map;
    }


    @Override
    public void insert(Sportmeeting sportmeeting) {
        sportmeetingMapper.insert(sportmeeting);
    }

    @Override
    public List<Sportmeeting> exportExcel() {
        return sportmeetingMapper.exportExcel();
    }

    @Override
    public void updateStatus(Integer id, Boolean status) {
        sportmeetingMapper.updateStatus(id, status);
    }

    @Override
    public Sportmeeting findBysId(Integer id) {

        return sportmeetingMapper.findBysId(id);
    }

    @Override
    public Integer update(Sportmeeting sportmeeting) {
        return sportmeetingMapper.updateByPKSelective(sportmeeting);
    }

    @Override
    public List<Sportmeeting> findAllSportmeetings() {

        return sportmeetingMapper.findAllSportmeetings();
    }
}

controller层
StudentController.java

package com.handy.controller;

import com.handy.annotation.FormToken;
import com.handy.domain.Borrow;
import com.handy.domain.Matches;
import com.handy.domain.Student;
import com.handy.service.StudentService;
import com.handy.utils.Excel.ExcelExportUtil;
import com.handy.utils.Excel.ExcelImportUtil;
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.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;

import javax.annotation.security.RolesAllowed;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * 公众号:程序猿矛盾体
 * 微信:Code2Life2
 */
@RolesAllowed("ADMIN")
@Controller
@RequestMapping("/student")
public class StudentController {
    @Autowired
    private StudentService studentService;


//    /**
//     * 查询所有学生信息,通过PageHelper进行封装
//     *
//     * @param page
//     * @param size
//     * @return
//     * @throws Exception
//     */
//    @RequestMapping("/findAll.do")
//    public ModelAndView findAll(@RequestParam(name = "page", required = true, defaultValue = "1") Integer page, @RequestParam(name = "size", required = true, defaultValue = "50") Integer size) throws Exception {
//        ModelAndView mv = new ModelAndView();
//        List<Student> studentList = studentService.findAll(page, size);
//        PageInfo pageInfo = new PageInfo(studentList);
//        mv.addObject("pageInfo", pageInfo);
//        mv.setViewName("student-list");
//        return mv;
//    }


    /**
     * 查询所有学生信息
     *
     * @return
     */
    @FormToken(save = true)//添加session 防止表单重复提交,在进入列表的时候添加session,在保存项目的时候通过识别session就能防止表单重复提交
    @RequestMapping("/findAll.do")
    public ModelAndView findAll() {
        ModelAndView mv = new ModelAndView();
        List<Student> studentList = studentService.findAll();
        mv.addObject("student", studentList);
        mv.setViewName("student-list");
        return mv;
    }


    /**
     * 删除学生信息
     *
     * @param sNo
     * @return
     */
    @RequestMapping("/deleteByPK.do")
    public String deleteByIds(String[] sNo) {
        studentService.deleteByPK(sNo);
        return "redirect:findAll.do";
    }

    /**
     * 查询学生详细信息
     *
     * @param sId
     * @return
     */
    @RequestMapping("/findDetailsBysId.do")
    public ModelAndView findDetailsBysId(Integer sId) {
        ModelAndView mv = new ModelAndView();
        Map<String, Object> map = studentService.findDetailsBysId(sId);
        Student student = (Student) map.get("student");
        List<Matches> matchesList = (List<Matches>) map.get("matchesList");
        List<Borrow> borrowList = (List<Borrow>) map.get("borrowList");
        mv.addObject("borrow", borrowList);
        mv.addObject("matches", matchesList);
        mv.addObject("student", student);
        mv.setViewName("student-details");
        return mv;
    }

    /**
     * 根据id查询学生信息
     *
     * @param id
     * @return
     */
    @RequestMapping(value = "/findById.do", method = RequestMethod.GET, produces = "application/json; charset=utf-8")
    @ResponseBody
    public Student findById(@RequestParam(name = "id") Integer id) {
        return studentService.findById(id);
    }

    /**
     * 插入学生信息
     *
     * @param student
     * @return
     */
    @RequestMapping(value = "/insert.do", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
    @ResponseBody
    public String insert(@RequestBody Student student) {
        try {
            studentService.insert(student);
        } catch (Exception e) {
            return "新增失败!";
        }
        return "200";
    }

    /**
     * 修改学生信息
     *
     * @param student
     * @return
     */
    @RequestMapping(value = "/update.do", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
    @ResponseBody
    public String update(@RequestBody Student student) {
        try {
            studentService.update(student);
        } catch (Exception e) {
            return "修改失败!";
        }
        return "200";
    }

    /**
     * 遍历所有学生信息到选择框里
     *
     * @return
     */
    @RequestMapping(value = "/findAllStudents.do", produces = "application/json; charset=utf-8")
    @ResponseBody
    public List<Student> findAllStudents() {
        return studentService.findAllStudents();
    }

    /**
     * 导出学生信息到Excel
     *
     * @param response
     * @throws Exception
     */
    @RequestMapping("/exportToExcel.do")
    public void exportExcelStyle(HttpServletResponse response) throws Exception {
        List<Student> students = studentService.exportExcel();
        ExcelExportUtil excelExportUtil = new ExcelExportUtil();
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("classFilePath", "excel/template.xlsx");
        params.put("styleIndex", 1);
        params.put("rowIndex", 2);
        params.put("objs", students);
        params.put("fileName", "学生表.xlsx");
        excelExportUtil.export(response, params);
    }


    @RequestMapping("/uploadExcel")
    public String fileUpload(MultipartFile uploadFile, Model model){
        try {
            ExcelImportUtil<Student> excelImportUtil=new ExcelImportUtil<>();
            List<Student> students = excelImportUtil.excelImportUtil(uploadFile.getInputStream(), Student.class, 1);
            studentService.importExcel(students);
            model.addAttribute("result","上传成功");
        }catch (Exception e){
            e.printStackTrace();
            model.addAttribute("result","上传失败");
        }
        return "uploadsuccess";
    }
    
}

SportmeetingController.java

package com.handy.controller;

import com.handy.domain.Broadcast;
import com.handy.domain.Event;
import com.handy.domain.Matches;
import com.handy.domain.Sportmeeting;
import com.handy.service.SportmeetingService;
import com.handy.utils.Excel.ExcelExportUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * 公众号:程序猿矛盾体
 * 微信:Code2Life2
 */
@Controller
@RequestMapping("/sportmeeting")
public class SportmeetingController {

    @Autowired
    private SportmeetingService sportmeetingService;

    /**
     * 查询所有运动会开幕信息
     *
     * @return
     */
    @RequestMapping("/findAll.do")
    public ModelAndView findAll() {
        ModelAndView mv = new ModelAndView();
        List<Sportmeeting> sportmeetingList = sportmeetingService.findAll();
        mv.addObject("sportmeeting", sportmeetingList);
        mv.setViewName("sportmeeting-list");
        return mv;
    }

    /**
     * 删除运动会信息
     *
     * @param sId
     * @return
     */
    @RequestMapping("/deleteByPK.do")
    public void deleteByIds(Integer[] sId) {
        sportmeetingService.deleteByPK(sId);
    }

    /**
     * 查询运动会详细信息
     *
     * @param sId
     * @return
     */
    @RequestMapping("/findDetailsBysId.do")
    public ModelAndView findDetailsBysId(Integer sId) {
        ModelAndView mv = new ModelAndView();
        Map<String, Object> map = sportmeetingService.findDetailsBysId(sId);
        Sportmeeting sportmeeting = (Sportmeeting) map.get("sportmeeting");
        List<Broadcast> broadcastList = (List<Broadcast>) map.get("broadcastList");
        List<Event> eventList = (List<Event>) map.get("eventList");
        List<Matches> matchesList = (List<Matches>) map.get("matchesList");
        mv.addObject("event", eventList);
        mv.addObject("matches", matchesList);
        mv.addObject("broadcast", broadcastList);
        mv.addObject("sportmeeting", sportmeeting);
        mv.setViewName("sportmeeting-details");
        return mv;
    }

    /**
     * 根据id查询项目
     *
     * @param id
     * @return
     */
    @RequestMapping(value = "/findBysId.do", method = RequestMethod.GET, produces = "application/json; charset=utf-8")
    @ResponseBody
    public Sportmeeting findProjectById(@RequestParam(name = "id") Integer id) {
        return sportmeetingService.findBysId(id);
    }


    /**
     * 新建一场运动会
     *
     * @param sportmeeting
     * @return
     */
    @RequestMapping(value = "/insert.do", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
    @ResponseBody
    public String insert(@RequestBody Sportmeeting sportmeeting) {
        try {
            sportmeetingService.insert(sportmeeting);
        } catch (Exception e) {
            return "新增失败!";
        }
        return "200";
    }

    /**
     * 修改运动会开幕信息
     *
     * @param sportmeeting
     * @return
     */
    @RequestMapping(value = "/update.do", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
    @ResponseBody
    public String update(@RequestBody Sportmeeting sportmeeting) {
        System.out.println(sportmeeting);
        try {
            sportmeetingService.update(sportmeeting);
        } catch (Exception e) {
            return "修改失败!";
        }
        return "200";
    }

    /**
     * 运动会开幕信息管理页面
     *
     * @return
     */
    @RequestMapping("/manage.do")
    public ModelAndView add() {
        ModelAndView mv = new ModelAndView();
        List<Sportmeeting> sportmeetingList = sportmeetingService.findAll();
        mv.addObject("sportmeeting", sportmeetingList);
        mv.setViewName("sportmeeting-manage");
        return mv;
    }

    /**
     * 运动会开幕信息导出
     *
     * @param response
     * @throws Exception
     */
    @RequestMapping("/export.do")
    public void exportExcelStyle(HttpServletResponse response) throws Exception {
        List<Sportmeeting> sportmeetings = sportmeetingService.exportExcel();
        ExcelExportUtil excelExportUtil = new ExcelExportUtil();
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("classFilePath", "/excel/template.xlsx");
        params.put("styleIndex", 2);
        params.put("rowIndex", 2);
        params.put("objs", sportmeetings);
        params.put("fileName", "s.xlsx");
        excelExportUtil.export(response, params);
    }

    /**
     * 修改运动会的状态
     *
     * @param Id
     * @param Status
     * @return
     */
    @RequestMapping("updateStatus.do")
    public String updateStatus(Integer Id, Boolean Status) {
        sportmeetingService.updateStatus(Id, Status);
        return "redirect:manage.do";
    }

    /**
     * 本届运动会的信息管理
     *
     * @param sId
     * @return
     */
    @RequestMapping("/manageFindDetailsBysId.do")
    public ModelAndView manageFindDetailsBysId(Integer sId) {
        ModelAndView mv = new ModelAndView();
        Map<String, Object> map = sportmeetingService.findDetailsBysId(sId);
        Sportmeeting sportmeeting = (Sportmeeting) map.get("sportmeeting");
        List<Broadcast> broadcastList = (List<Broadcast>) map.get("broadcastList");
        List<Event> eventList = (List<Event>) map.get("eventList");
        List<Matches> matchesList = (List<Matches>) map.get("matchesList");
        mv.addObject("event", eventList);
        mv.addObject("matches", matchesList);
        mv.addObject("broadcast", broadcastList);
        mv.addObject("sportmeeting", sportmeeting);
        mv.setViewName("sportmeeting-manage-details");
        return mv;
    }

    /**
     * 遍历所有运动会到选择框上
     *
     * @return
     */
    @RequestMapping(value = "/findAllSportmeetings.do", produces = "application/json; charset=utf-8")
    @ResponseBody
    public List<Sportmeeting> findAllSportmeetings() {
        return sportmeetingService.findAllSportmeetings();
    }

}

写在最后

如果运行代码中遇到问题,或者需要完整源码和报告,可以加博主V交流:Code2Life2

觉得有用,记得一键三连哦!

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
10天前
|
XML 安全 Java
|
13天前
|
缓存 NoSQL Java
什么是缓存?如何在 Spring Boot 中使用缓存框架
什么是缓存?如何在 Spring Boot 中使用缓存框架
18 0
|
6天前
|
缓存 Java 数据库连接
Spring框架中的事件机制:深入理解与实践
Spring框架是一个广泛使用的Java企业级应用框架,提供了依赖注入、面向切面编程(AOP)、事务管理、Web应用程序开发等一系列功能。在Spring框架中,事件机制是一种重要的通信方式,它允许不同组件之间进行松耦合的通信,提高了应用程序的可维护性和可扩展性。本文将深入探讨Spring框架中的事件机制,包括不同类型的事件、底层原理、应用实践以及优缺点。
37 8
|
16天前
|
存储 Java 关系型数据库
在Spring Boot中整合Seata框架实现分布式事务
可以在 Spring Boot 中成功整合 Seata 框架,实现分布式事务的管理和处理。在实际应用中,还需要根据具体的业务需求和技术架构进行进一步的优化和调整。同时,要注意处理各种可能出现的问题,以保障分布式事务的顺利执行。
32 6
|
13天前
|
前端开发 Java 开发者
Spring MVC中的请求映射:@RequestMapping注解深度解析
在Spring MVC框架中,`@RequestMapping`注解是实现请求映射的关键,它将HTTP请求映射到相应的处理器方法上。本文将深入探讨`@RequestMapping`注解的工作原理、使用方法以及最佳实践,为开发者提供一份详尽的技术干货。
38 2
|
20天前
|
Java Kotlin 索引
学习Spring框架特性及jiar包下载
Spring 5作为最新版本,更新了JDK基线至8,修订了核心框架,增强了反射和接口功能,支持响应式编程及Kotlin语言,引入了函数式Web框架,并提升了测试功能。Spring框架可在其官网下载,包括文档、jar包和XML Schema文档,适用于Java SE和Java EE项目。
24 0
|
2月前
|
Java 数据库连接 Maven
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和MyBatis Generator,使用逆向工程来自动生成Java代码,包括实体类、Mapper文件和Example文件,以提高开发效率。
130 2
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。
|
2月前
|
SQL JSON Java
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
65 1
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
|
2月前
|
前端开发 Java Apache
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
本文详细讲解了如何整合Apache Shiro与Spring Boot项目,包括数据库准备、项目配置、实体类、Mapper、Service、Controller的创建和配置,以及Shiro的配置和使用。
441 1
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
|
2月前
|
SQL Java 数据库连接
mybatis使用二:springboot 整合 mybatis,创建开发环境
这篇文章介绍了如何在SpringBoot项目中整合Mybatis和MybatisGenerator,包括添加依赖、配置数据源、修改启动主类、编写Java代码,以及使用Postman进行接口测试。
21 0
mybatis使用二:springboot 整合 mybatis,创建开发环境