JavaWeb 도서 관리 시스템

더 많은 시스템보기 : 시스템 백과 사전, 코스 디자인, 졸업 디자인, 보려면 여기를 클릭하십시오.

01 시스템 개요

도서 관리 시스템은 컴퓨터와 인터넷을 사용하여 도서 관리의 효율성을 높이기 위해 도서 관리를 구성하고 자동화하는 소프트웨어입니다.

02 시스템 특징

통합 된 주류 프레임 워크, 간단하고 간소화 된 개발, 높은 확장 성

03 기술

스프링 부트 + jpa + mybatis + springsecurity + javaex

후부 :

  • 기본 프레임 워크 : SpringBoot
  • 간단한 데이터 조작 : SpringData Jpa
  • 복잡한 데이터 조작 : Mybatis
  • 보안 프레임 워크 : SpringSecurity
  • 템플릿 엔진 : Thymeleaf

프런트 엔드 :

  • javaEx는 실제로 html, css 및 js의 캡슐화입니다. 원본에 가까울수록 수정하는 것이 더 편리합니다.
  • jQuery, 솔직히 말해서 jQuery는 여전히 사용하기 매우 편안하며 다양한 프런트 엔드 프레임 워크의 한계를 극복합니다.

04 운영 환경

jdk1.8 + maven3 + mysql5.7

05 기능 소개

도서관 관리

도서 목록 : 서가에 놓인 도서의 정보를 표시하고 서가에있는 도서를 검색, 수정, 삭제할 수 있습니다.
책꽂이 : 책 정보를 입력하고 책 이름, 저자, 책 분류, 페이지 번호, 가격 및 기타 데이터를 입력하여 책을 입력합니다.

차입 관리

도서 검색 : 도서명, 저자명, 도서 분류 등을 기준으로 도서를 검색합니다.
도서 대출 : 도서 정보를 입력하고 도서 이름, 저자, 도서 카테고리, 페이지 수, 가격 및 기타 도서 대여 데이터를 입력합니다.
책 반환 : 빌린 책을 반환합니다.

리더 관리

리더 목록 : 등록 된 리더 사용자를 표시합니다.
리더 추가 : 사용자의 닉네임, 사용자 이름, 비밀번호, 생일, 전화 번호, 이메일 및 기타 정보를 입력하여 새 사용자를 추가하십시오.

사용자 센터

개인 정보 : 개인 정보를보고 수정합니다.
사용자 관리 : 추가 된 사용자의 권한 정보를 검색, 삭제, 사용합니다.
관리자 추가 : 관리자의 닉네임, 사용자 이름, 비밀번호, 생일, 전화 번호, 이메일 및 기타 정보를 입력하여 새 관리자를 추가합니다.

06 스크린 샷 실행

로그인 인터페이스

여기에 사진 설명 삽입

홈페이지

여기에 사진 설명 삽입

도서 목록 인터페이스

여기에 사진 설명 삽입

책 인터페이스 추가

여기에 사진 설명 삽입

도서 반환 인터페이스

여기에 사진 설명 삽입

리더 목록 인터페이스

여기에 사진 설명 삽입

개인 정보 인터페이스

여기에 사진 설명 삽입

사용자 관리 인터페이스

여기에 사진 설명 삽입

07 메인 코드

도서관 관리

package com.book.manager.controller;

import com.book.manager.entity.Book;
import com.book.manager.service.BookService;
import com.book.manager.util.R;
import com.book.manager.util.http.CodeEnum;
import com.book.manager.util.ro.PageIn;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

/**
 * @Description 用户管理
 */
@Api(tags = "图书管理")
@RestController
@RequestMapping("/book")
public class BookController {

    @Autowired
    private BookService bookService;

    @ApiOperation("图书搜索列表")
    @PostMapping("/list")
    public R getBookList(@RequestBody PageIn pageIn) {
        if (pageIn == null) {
            return R.fail(CodeEnum.PARAM_ERROR);
        }

        return R.success(CodeEnum.SUCCESS,bookService.getBookList(pageIn));
    }

    @ApiOperation("添加图书")
    @PostMapping("/add")
    public R addBook(@RequestBody Book book) {
        return R.success(CodeEnum.SUCCESS,bookService.addBook(book));
    }

    @ApiOperation("编辑图书")
    @PostMapping("/update")
    public R modifyBook(@RequestBody Book book) {
        return R.success(CodeEnum.SUCCESS,bookService.updateBook(book));
    }

    @ApiOperation("图书详情")
    @GetMapping("/detail")
    public R bookDetail(Integer id) {
        return R.success(CodeEnum.SUCCESS,bookService.findBookById(id));
    }

    @ApiOperation("图书详情 根据ISBN获取")
    @GetMapping("/detailByIsbn")
    public R bookDetailByIsbn(String isbn) {
        return R.success(CodeEnum.SUCCESS,bookService.findBookByIsbn(isbn));
    }

    @ApiOperation("删除图书")
    @GetMapping("/delete")
    public R delBook(Integer id) {
        bookService.deleteBook(id);
        return R.success(CodeEnum.SUCCESS);
    }

}

차입 관리

package com.book.manager.controller;

import cn.hutool.core.date.DateUtil;
import com.book.manager.entity.Borrow;
import com.book.manager.service.BookService;
import com.book.manager.service.BorrowService;
import com.book.manager.util.R;
import com.book.manager.util.consts.Constants;
import com.book.manager.util.http.CodeEnum;
import com.book.manager.util.ro.RetBookIn;
import com.book.manager.util.vo.BackOut;
import com.book.manager.util.vo.BookOut;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @Description 用户管理
 */
@Api(tags = "借阅管理")
@RestController
@RequestMapping("/borrow")
public class BorrowController {

    @Autowired
    private BorrowService borrowService;

    @Autowired
    private BookService bookService;

    @ApiOperation("借阅列表")
    @GetMapping("/list")
    public R getBorrowList(Integer userId) {
        return R.success(CodeEnum.SUCCESS,borrowService.findAllBorrowByUserId(userId));
    }

    @ApiOperation("借阅图书")
    @PostMapping("/add")
    public R addBorrow(@RequestBody Borrow borrow) {
        Integer result = borrowService.addBorrow(borrow);
        if (result == Constants.BOOK_BORROWED) {
            return R.success(CodeEnum.BOOK_BORROWED);
        }else if (result == Constants.USER_SIZE_NOT_ENOUGH) {
            return R.success(CodeEnum.USER_NOT_ENOUGH);
        }else if (result == Constants.BOOK_SIZE_NOT_ENOUGH) {
            return R.success(CodeEnum.BOOK_NOT_ENOUGH);
        }
        return R.success(CodeEnum.SUCCESS,Constants.OK);
    }

    @ApiOperation("编辑借阅")
    @PostMapping("/update")
    public R modifyBorrow(@RequestBody Borrow borrow) {
        return R.success(CodeEnum.SUCCESS,borrowService.updateBorrow(borrow));
    }

    @ApiOperation("借阅详情")
    @GetMapping("/detail")
    public R borrowDetail(Integer id) {
        return R.success(CodeEnum.SUCCESS,borrowService.findById(id));
    }

    @ApiOperation("删除归还记录")
    @GetMapping("/delete")
    public R delBorrow(Integer id) {
        borrowService.deleteBorrow(id);
        return R.success(CodeEnum.SUCCESS);
    }

    @ApiOperation("已借阅列表")
    @GetMapping("/borrowed")
    public R borrowedList(Integer userId) {
        List<BackOut> outs = new ArrayList<>();
        if (userId!=null&&userId>0) {
            // 获取所有 已借阅 未归还书籍
            List<Borrow> borrows = borrowService.findBorrowsByUserIdAndRet(userId, Constants.NO);
            for (Borrow borrow : borrows) {
                BackOut backOut = new BackOut();
                BookOut out = bookService.findBookById(borrow.getBookId());
                BeanUtils.copyProperties(out,backOut);

                backOut.setBorrowTime(DateUtil.format(borrow.getCreateTime(),Constants.DATE_FORMAT));

                String endTimeStr = DateUtil.format(borrow.getEndTime(), Constants.DATE_FORMAT);
                backOut.setEndTime(endTimeStr);
                // 判断是否逾期
                String toDay = DateUtil.format(new Date(), Constants.DATE_FORMAT);
                int i = toDay.compareTo(endTimeStr);
                if (i>0) {
                    backOut.setLate(Constants.YES_STR);
                }else {
                    backOut.setLate(Constants.NO_STR);
                }

                outs.add(backOut);
            }
        }

        return R.success(CodeEnum.SUCCESS,outs);
    }

    @ApiOperation("归还书籍")
    @PostMapping("/ret")
    public R retBook(Integer userId, Integer bookId) {
        // 归还图书
        borrowService.retBook(userId,bookId);
        return R.success(CodeEnum.SUCCESS);
    }

}

사용자 관리

package com.book.manager.controller;

import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.book.manager.entity.Users;
import com.book.manager.service.UserService;
import com.book.manager.util.R;
import com.book.manager.util.consts.Constants;
import com.book.manager.util.consts.ConvertUtil;
import com.book.manager.util.http.CodeEnum;
import com.book.manager.util.vo.PageOut;
import com.book.manager.util.ro.PageIn;
import com.book.manager.util.vo.UserOut;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * @Description 用户管理
 */
@Api(tags = "用户管理")
@RestController
@RequestMapping("/user")
public class UsersController {

    @Autowired
    private UserService userService;

    @ApiOperation("用户列表")
    @PostMapping("/list")
    public R getUsers(@RequestBody PageIn pageIn) {
        if (pageIn == null) {
            return R.fail(CodeEnum.PARAM_ERROR);
        }
        // 封装分页出参对象
        PageInfo<Users> userList = userService.getUserList(pageIn);
        PageOut pageOut = new PageOut();
        pageOut.setCurrPage(userList.getPageNum());
        pageOut.setPageSize(userList.getPageSize());
        pageOut.setTotal((int) userList.getTotal());
        List<UserOut> outs = new ArrayList<>();
        for (Users users : userList.getList()) {
            UserOut out = new UserOut();
            BeanUtils.copyProperties(users,out);
            out.setIdent(ConvertUtil.identStr(users.getIdentity()));
            out.setBirth(DateUtil.format(users.getBirthday(),Constants.DATE_FORMAT));
            outs.add(out);
        }

        pageOut.setList(outs);

        return R.success(CodeEnum.SUCCESS,pageOut);
    }

//    @ApiOperation("添加用户")
//    @PostMapping("/add")
//    public R addUsers(@RequestBody Users users) {
//        return R.success(CodeEnum.SUCCESS,userService.addUser(users));
//    }

    @ApiOperation("添加读者")
    @PostMapping("/addReader")
    public R addReader(@RequestBody Users users) {
        if (users == null) {
            return R.fail(CodeEnum.PARAM_ERROR);
        }
        // 读者默认是普通用户
        users.setIsAdmin(1);
        return R.success(CodeEnum.SUCCESS,userService.addUser(users));
    }

    @ApiOperation("添加管理员")
    @PostMapping("/addAdmin")
    public R addAdmin(@RequestBody Users users) {
        if (users == null) {
            return R.fail(CodeEnum.PARAM_ERROR);
        }
        // 设置管理员权限
        users.setIsAdmin(0);
        return R.success(CodeEnum.SUCCESS,userService.addUser(users));
    }

    @ApiOperation("编辑用户")
    @PostMapping("/update")
    public R modifyUsers(@RequestBody Users users) {
        return R.success(CodeEnum.SUCCESS,userService.updateUser(users));
    }

    @ApiOperation("用户详情")
    @GetMapping("/detail")
    public R userDetail(Integer id) {
        Users user = userService.findUserById(id);
        if (user!=null) {
            UserOut out = new UserOut();
            BeanUtils.copyProperties(user,out);
            out.setBirth(DateUtil.format(user.getBirthday(),Constants.DATE_FORMAT));
            out.setIdent(ConvertUtil.identStr(user.getIdentity()));
            return R.success(CodeEnum.SUCCESS,out);
        }

        return R.fail(CodeEnum.NOT_FOUND);
    }

    @ApiOperation("删除用户")
    @GetMapping("/delete")
    public R delUsers(Integer id) {
        userService.deleteUser(id);
        return R.success(CodeEnum.SUCCESS);
    }

    @ApiOperation("获取当前用户登陆信息")
    @GetMapping("/currUser")
    public R getCurrUser() {
        Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
        if (principal!=null) {
            Map<String,Object> map = BeanUtil.beanToMap(principal);
            String username = (String) map.get("username");
            if (StrUtil.isNotBlank(username)) {
                Users users = userService.findByUsername(username);
                UserOut out = new UserOut();
                BeanUtils.copyProperties(users,out);
                out.setBirth(DateUtil.format(users.getBirthday(),Constants.DATE_FORMAT));
                Integer identity = users.getIdentity();
                String ident = "";
                if (identity == Constants.STUDENT) {
                    ident = Constants.STU_STR;
                }else if (identity == Constants.TEACHER) {
                    ident = Constants.TEA_STR;
                }else if (identity == Constants.OTHER) {
                    ident = Constants.OTHER_STR;
                }else if (identity == Constants.ADMIN) {
                    ident = Constants.ADMIN_STR;
                }
                out.setIdent(ident);
                return R.success(CodeEnum.SUCCESS,out);
            }
        }
        return R.fail(CodeEnum.USER_NOT_FOUND);
    }
}

08 사용 방법

  1. 로컬 java8 환경, 데이터베이스 MySQL5.5 + 구축;
  2. sql 파일을 데이터베이스로 가져오고 데이터 연결 (자신의 라이브러리 이름, 사용자 이름, 암호 등)을 수정합니다.
  3. 프로젝트를 가져오고, maven을 구성하고, 종속성 다운로드가 완료 될 때까지 기다립니다.
  4. IDE를 설치하고 프로젝트를 엽니 다.
  5. http : // localhost : 8080을 방문하십시오.
  6. 계정 : [학생 : stu / 123] [교사 : 차 / 123] [기타 : 기타 / 123] [관리자 : admin / 123]

09 수입은 어떻게하나요?

  • 아이디어 : 소스 폴더를 직접 열고 pom 파일이있는 디렉토리임을 기억하십시오.
  • 이클립스 : 직접 가져 오기-기존 가져 오기 메이븐 프로젝트 선택
  • Maven이 구성되어 있는지 확인하십시오.

10 소스 코드 다운로드

공개 계정 [C you again]을 팔로우하고 "JavaWeb Library Management System"에 응답하여 무료로 받으십시오.
홈페이지의 QR 코드를 직접 스캔하여 "JavaWeb Library Management System"에 답장하여 무료로받을 수 있습니다. 여기를 클릭하여 개인 홈페이지를 열 수 있습니다.

참고 :이 소스 코드는 인터넷에서 가져온 것입니다. 침해가있는 경우 삭제하려면 문의하십시오! !

저자 : 다시 C 당신, IT 기술의 도로에서 벽돌을 이동하는 소프트웨어 개발 노력에 참여 흰색
공개 번호 : [ 다시 C 당신 ], 공유 컴퓨터 클래스 졸업 프로젝트 소스 코드, IT 기술 기사, 게임 소스 코드, 웹 템플릿, 프로그램 삶의 등등. 블로거의 기술 그룹에 공개 계정 [ ]에 답장하고, 거물과 소통하고, 드라이
굿즈 학습 자료를받습니다. 재 인쇄 정보 : 블로거의 기사를 재 인쇄 할 수 있으며, 재 인쇄 할 때 출처를 표시하세요.
칭찬 링크 : 창작은 아닙니다. 쉽고, 좋아요를 기억하고, 댓글을 달고, 전달하고, 감사합니다.

추천

출처blog.51cto.com/15107850/2663700