Java와 Spring Boot, MySQL을 활용한 학생 정보 관리 시스템 구현

학생 정보 관리 시스템은 Java, Spring Boot 및 MySQL을 기반으로 설계되었습니다. 이 시스템은 효율적인 학생 데이터 관리를 위해 개발되었으며, 다양한 기능을 제공합니다.

기술 스택

  • 언어: Java
  • 프레임워크: Spring Boot
  • 프론트엔드: JavaScript, Vue.js, CSS3
  • 개발 도구: IntelliJ IDEA / Eclipse
  • 데이터베이스: MySQL 5.7 / 8.0
  • JDK 버전: JDK 1.8
  • Maven: apache-maven 3.8.1-bin
  • 프론트엔드 환경: Node.js 12/14/16

시스템 구현

관리자 로그인, 코스 관리, 공지사항 관리 및 유형 관리 등의 주요 기능을 포함하고 있습니다.

핵심 코드 예제

로그인 모듈

package kr.co.studentmanagementsystem.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import kr.co.studentmanagementsystem.service.UserService;
import kr.co.studentmanagementsystem.entity.UserEntity;
import kr.co.studentmanagementsystem.utils.ResponseUtil;

@RestController
@RequestMapping("/auth")
public class AuthController {

    @Autowired
    private UserService userService;

    @PostMapping("/login")
    public ResponseUtil login(@RequestBody UserEntity user) {
        UserEntity dbUser = userService.findByUsername(user.getUsername());
        if (dbUser == null || !dbUser.getPassword().equals(user.getPassword())) {
            return ResponseUtil.error("아이디 또는 비밀번호가 일치하지 않습니다.");
        }
        String token = userService.generateToken(dbUser);
        return ResponseUtil.ok().put("token", token);
    }

    @PostMapping("/register")
    public ResponseUtil register(@RequestBody UserEntity user) {
        if (userService.existsByUsername(user.getUsername())) {
            return ResponseUtil.error("이미 존재하는 사용자입니다.");
        }
        userService.save(user);
        return ResponseUtil.ok();
    }
}

파일 업로드 모듈

package kr.co.studentmanagementsystem.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import kr.co.studentmanagementsystem.service.FileService;
import kr.co.studentmanagementsystem.utils.ResponseUtil;

@RestController
@RequestMapping("/file")
public class FileController {

    @Autowired
    private FileService fileService;

    @PostMapping("/upload")
    public ResponseUtil uploadFile(@RequestParam("file") MultipartFile file) throws Exception {
        if (file.isEmpty()) {
            throw new Exception("업로드할 파일이 없습니다.");
        }
        String fileName = fileService.storeFile(file);
        return ResponseUtil.ok().put("fileName", fileName);
    }

    @GetMapping("/download/{fileName}")
    public ResponseEntity downloadFile(@PathVariable String fileName) {
        return fileService.downloadFile(fileName);
    }
}

응답 데이터 클래스

package kr.co.studentmanagementsystem.utils;

import java.util.HashMap;
import java.util.Map;

public class ResponseUtil extends HashMap {

    public ResponseUtil() {
        put("status", "success");
    }

    public static ResponseUtil error(String message) {
        ResponseUtil response = new ResponseUtil();
        response.put("status", "error");
        response.put("message", message);
        return response;
    }

    public static ResponseUtil ok(String message) {
        ResponseUtil response = new ResponseUtil();
        response.put("message", message);
        return response;
    }

    public static ResponseUtil ok(Map data) {
        ResponseUtil response = new ResponseUtil();
        response.putAll(data);
        return response;
    }
}

태그: java Spring Boot MySQL 학정보 관리 시스템

5월 29일 22:09에 게시됨