Java项目:书籍管理系统(java+SSM+JSP+JavaScript+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.数据库:MySql 5.7版本;
6.是否Maven项目:是;


技术栈

1. 后端:Spring+SpringMVC+Mybatis
2. 前端:JSP+CSS+JavaScript


使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中config.properties配置文件中的数据库配置改为自己的配置;
4. 运行项目,在浏览器中输入http://localhost:8080/ssm_ebooknet 登录

 

 

 

 

 

图书管理控制层:

/**
 * @State 图书管理控制层
 */
@Controller
@RequestMapping("/book")
@SessionAttributes({"bookTypeList"})
public class BookController {

    @Autowired
    private IBookTypeService iBookTypeService;

    @Autowired
    private IBookService iBookService;

    @Autowired
    private ISupplierService iSupplierService;

    /**
     * 图书列表
     * @param model
     * @return
     */
    @GetMapping("/home")
    public String toAdminHome(
            @RequestParam(defaultValue = "1") Integer num,
            @RequestParam(defaultValue = "5")Integer size,
            Model model
    ) {
//        获取导航栏
        List<BookType> bookTypeList = iBookTypeService.findAllBookType(1,100 );
        model.addAttribute("bookTypeList", bookTypeList);
//        获取供应商
        List<Supplier> supplierList = iSupplierService.findAllSupplier(1,100);
        model.addAttribute("supplierList", supplierList);
//        获取图书
        List<Books> booksList = iBookService.findAllBook(num,size);
        PageInfo<Books> booksPageInfo = new PageInfo<>(booksList);
        model.addAttribute("booksPageInfo", booksPageInfo);
        return "/backstage/home";
    }

    /**
     * 图书列表
     * @param model
     * @return
     */
    @GetMapping("/home1")
    public @ResponseBody PageInfo<Books> toAdminHome1(
            @RequestParam(defaultValue = "1") Integer num,
            @RequestParam(defaultValue = "5")Integer size,
            Model model
    ) {
//        获取导航栏
        List<BookType> bookTypeList = iBookTypeService.findAllBookType(1,100);
        model.addAttribute("bookTypeList", bookTypeList);
//        获取供应商
        List<Supplier> supplierList = iSupplierService.findAllSupplier(1,100 );
        model.addAttribute("supplierList", supplierList);
//        获取图书
        List<Books> booksList = iBookService.findAllBook(num,size);
        PageInfo<Books> booksPageInfo = new PageInfo<>(booksList);
        return booksPageInfo;
    }

    /**
     * 上传图书图片
     * @param request
     * @param file
     * @return
     */
    @PostMapping("/uploadimg")
    public @ResponseBody int uploadimg(HttpServletRequest request, MultipartFile file) {
        int i = iBookService.uploadImage(request,file);
        return i;
    }

    /**
     * 上传详情图片
     * @param request
     * @param file
     * @return
     */
    @PostMapping("/uploaddetail")
    public @ResponseBody int uploaddetail(HttpServletRequest request, MultipartFile file) {
        int i = iBookService.uploaddetail(request,file);
        return i;
    }

    /**
     *新增图书
     * @return
     */
    @PostMapping("/saveBook")
    public String saveBook(Books books) {
//        System.out.println("Books:="+books);
        iBookService.saveBook(books);
        return "redirect:/book/home";
    }


    /**
     * 前台首页
     *
     * @return
     */
    @GetMapping("/qiantai")
    public String toHome(
            @RequestParam(defaultValue = "1") Integer num,
            @RequestParam(defaultValue = "10")Integer size,
            Model model) {
//        获取导航栏
        List<BookType> bookTypeList = iBookTypeService.findAllBookType(1,100);
        model.addAttribute("bookTypeList", bookTypeList);
//        获取全部图书
        List<Books> booksList = iBookService.findAllBook(num,size );
        PageInfo<Books> booksPageInfo = new PageInfo<>(booksList);
        model.addAttribute("booksPageInfo", booksPageInfo);
        return "/frontdesk/home";
    }

    /**
     * 通过Id查询图书详情
     * @param id
     * @param model
     * @return
     */
    @GetMapping("/findById/{id}")
    public String findById(@PathVariable Integer id,Model model) {
        Books books = iBookService.findById(id);
        model.addAttribute("books",books);
        return "/frontdesk/book_detail";
    }

    /**
     * 管理员通过Id查询图书详情
     * @param id
     * @param model
     * @return
     */
    @GetMapping("/adminfindById/{id}")
    public String adminfindById(@PathVariable Integer id,Model model) {
        //        获取供应商
        List<Supplier> supplierList = iSupplierService.findAllSupplier(1,100 );
        model.addAttribute("supplierList", supplierList);
//        获取图书详情
        Books books = iBookService.findById(id);
        model.addAttribute("books",books);
        return "/backstage/update_book";
    }

    /**
     * 修改图书信息
     * @param books
     * @return
     */
    @PostMapping("/updateBook")
    public String updateBook(Books books) {
//        System.out.println("返回的图书:"+books);
        iBookService.updateBook(books);
        return "redirect:/book/home";
    }

    /**
     * 通过图书类型Id查询图书
     * @param tid
     * @param model
     * @return
     */
    @GetMapping("/findByTid/{tid}")
    public String findByTid(@PathVariable Integer tid,@RequestParam(defaultValue = "1") Integer num,@RequestParam(defaultValue = "10")Integer size,Model model) {
        List<Books> booksList = iBookService.findByTid(tid,num,size);
        PageInfo<Books> booksPageInfo = new PageInfo<>(booksList);
        model.addAttribute("booksPageInfo", booksPageInfo);
        model.addAttribute("tid",tid);
        return "/frontdesk/home";
    }

    @PostMapping("/deleteBook/{id}")
    public @ResponseBody int deleteBook(@PathVariable("id") Integer id) {
        int i = iBookService.deleteBook(id);
        return i;
    }


}

用户管理控制层:

/**
 * State:用户控制层
 */
@Controller
@RequestMapping("/users")
@SessionAttributes({"userId","userName","password","adminId","adminName","adminpassword"})
public class UserController {

    @Autowired
    private IUserService iUserService;

    /**
     * 跳转用户登录页面
     * @return
     */
    @GetMapping("/login")
    public String login() {
        return "/frontdesk/login";
    }

    /**
     * 用户登录
     * @return
     * @param u
     */
    @PostMapping("/toLogin")
    public String toLogin(User u,Model model) {
        User user = iUserService.toLogin(u);
        if (user == null) {
            return "redirect:/users/register";
        }
        model.addAttribute("userId",user.getId());
        model.addAttribute("userName",user.getName());
        model.addAttribute("password",user.getPassword());
        return "redirect:/book/qiantai";
    }

    /**
     * 跳转用户注册页面
     * @return
     */
    @GetMapping("/register")
    public String register() {
        return "/frontdesk/register";
    }

    /**
     * 用户注册
     * @return
     */
    @PostMapping("/toRegister")
    public String toRegister(User u) {
//        System.out.println("注册信息:"+u);
        int i = iUserService.toRegister(u);
        if (i != 1 ) {
            return "redirect:/users/register";
        }
        return "redirect:/users/login";
    }

    /**
     * 跳转管理员登录页面
     * @return
     */
    @GetMapping("/adminLogin")
    public String adminLogin() {
        return "/backstage/login";
    }

    /**
     * 管理员登录
     * @return
     */
    @PostMapping("/toAdminLogin")
    public String toAdminLogin(User u,Model model) {
//        System.out.println("User==:"+u);
        User user = iUserService.toLogin(u);
        if (user == null) {
            model.addAttribute("message","邮箱或密码错误,请确认后重试!");
            return "/backstage/login";
        }
        model.addAttribute("adminId",user.getId());
        model.addAttribute("adminName",user.getName());
        model.addAttribute("adminpassword",user.getPassword());
        return "redirect:/book/home";
    }

    /**
     * 根据tag查看全部用户或管理员
     * @param tag
     * @return
     */
    @GetMapping("/findByTag/{tag}")
    public String findByTag(
            @PathVariable Integer tag,
            @RequestParam(defaultValue = "1") Integer num,
            @RequestParam(defaultValue = "5") Integer size,
            Model model) {
        List<User> userList = iUserService.findByTag(tag,num,size);
        PageInfo<User> userPageInfo = new PageInfo<>(userList);
        model.addAttribute("userPageInfo",userPageInfo);
        return "/backstage/user_control";

    }

    /**
     * 返回JSON类型
     * 根据tag查看全部用户或管理员
     * @param tag
     * @return
     */
    @GetMapping("/findByTag1/{tag}")
    public @ResponseBody PageInfo<User> findByTag1(
            @PathVariable Integer tag,
            @RequestParam(defaultValue = "1") Integer num,
            @RequestParam(defaultValue = "5") Integer size
    ) {
        List<User> userList = iUserService.findByTag(tag,num,size);
        PageInfo<User> userPageInfo = new PageInfo<>(userList);
        return userPageInfo;

    }

    /**
     * 查看个人信息
     * @return
     */
    @GetMapping("/findById/{id}/{tag}")
    public String findById(@PathVariable int id,@PathVariable int tag,Model model) {
        User user = iUserService.findById(id,tag);
        model.addAttribute("user",user);
        if (user.getTag() != 1) {
            return "/frontdesk/person_detail";
        } else {
            return "/backstage/person_detail";
        }
    }

    /**
     * 管理员查看他人信息
     * @return
     */
    @GetMapping("/adminFindById/{id}/{tag}")
    public @ResponseBody User adminFindById(@PathVariable int id,@PathVariable int tag,Model model) {
        User user = iUserService.findById(id,tag);
        return user;
    }

    /**
     * 新增用户
     * @param u
     * @return
     */
    @PostMapping("/saveUser")
    public String saveUser(User u) {
//        System.out.println("1User==="+u);
        int i = iUserService.saveUser(u);
        return "redirect:/users/findByTag/0";
    }

    /**
     * 修改个人信息
     * @return
     */
    @PostMapping("/updateUser")
    public String updateUser(User u) {
//        System.out.println("User:"+u);
        int i = iUserService.updateUser(u);
//        System.out.println("i=="+i);
        if (i != 1) {
            System.out.println("个人信息修改失败");
            return "redirect:/users/findById/"+u.getId()+"/"+u.getTag();
        }
        if (u.getTag() != 1) {
            return "redirect:/book/qiantai";
        }
        return "redirect:/book/home";
    }

    /**
     * 修改他人信息
     * @return
     */
    @PostMapping("/adminUpdateUser")
    public String adminUpdateUser(User u) {
//        System.out.println("User:"+u);
        int i = iUserService.updateUser(u);
//        System.out.println("i=="+i);
        if (i != 1) {
            System.out.println("个人信息修改失败");
        }
        return "redirect:/users/findByTag/0";
    }

    /**
     * 修改个人密码
     * @return
     */
    @PostMapping("/updatePwd")
    public String updatePwd(User u) {
//        System.out.println("User:"+u);
//        判断是否为管理员还是用户
        if (u.getTag() != 1) {
            int i = iUserService.updatePwd(u);
//        System.out.println("ipwd=="+i);
            if (i != 1) {
                System.out.println("个人信息修改失败");
                return "/frontdesk/update_pwd";
            }
            return "redirect:/users/toLoginOut";
        }
//        System.out.println("User:"+u);
        int i = iUserService.updatePwd(u);
//        System.out.println("ipwd=="+i);
        if (i != 1) {
            System.out.println("个人信息修改失败");
            return "/backstage/update_pwd";
        }
        return "redirect:/users/toAdminLoginOut";
    }

    /**
     * 退出登录
     * @return
     */
    @GetMapping("/toLoginOut")
    public String toLoginOut(SessionStatus status) {
        status.setComplete();
        boolean complete = status.isComplete();
        if (complete) {
            System.out.println("退出成功");
        }
        return "redirect:/book/qiantai";
    }

    /**
     * 管理员退出登录
     * @return
     */
    @GetMapping("/toAdminLoginOut")
    public String toAdminLoginOut(SessionStatus status) {
        status.setComplete();
        boolean complete = status.isComplete();
        if (complete) {
            System.out.println("退出成功");
        }
        return "redirect:/users/adminLogin";
    }

    /**
     * 根据主键Id删除某一用户
     * @return
     */
    @PostMapping("/deleteUser/{id}")
    public @ResponseBody int deleteUser(@PathVariable Integer id) {
        int i = iUserService.deleteUser(id);
        return i;
    }




}

图书类型管理控制层:

/**
 * @State 图书类型(导航)
 */
@Controller
@RequestMapping("/bookType")
public class BookTypeController {

    @Autowired
    private IBookTypeService iBookTypeService;

    /**
     * 查询所有图书类型
     */
    @GetMapping("/findAllBookType")
    public String findAllBookType(
            @RequestParam(defaultValue = "1") Integer num,
            @RequestParam(defaultValue = "5")Integer size,
            Model model
    ) {
        List<BookType> bookTypeList = iBookTypeService.findAllBookType(num,size);
        PageInfo<BookType> bookTypePageInfo = new PageInfo<>(bookTypeList);
        model.addAttribute("bookTypePageInfo",bookTypePageInfo);
        return  "/backstage/book_type";
    }

    /**
     * 返回JSON
     * 查询所有图书类型
     */
    @GetMapping("/findAllBookType1")
    public @ResponseBody PageInfo<BookType> findAllBookType1(
            @RequestParam(defaultValue = "1") Integer num,
            @RequestParam(defaultValue = "5")Integer size
    ) {
        List<BookType> bookTypeList = iBookTypeService.findAllBookType(num,size);
        PageInfo<BookType> bookTypePageInfo = new PageInfo<>(bookTypeList);
        return  bookTypePageInfo;
    }

    /**
     * 新增图书类型
     * @param bookType
     * @return
     */
    @PostMapping("/saveBookType")
    public String saveBookType(BookType bookType) {
        iBookTypeService.saveBookType(bookType);
        return "redirect:/bookType/findAllBookType";
    }

    /**
     * 查询单独图书类型
     * @param id
     * @return
     */
    @PostMapping("/findById/{id}")
    public @ResponseBody BookType findById(@PathVariable Integer id) {
        BookType bookType = iBookTypeService.findById(id);
        return bookType;
    }

    /**
     * 修改图书类型
     * @param bookType
     * @return
     */
    @PostMapping("/updateBookType")
    public @ResponseBody int updateBookType(BookType bookType) {
//        System.out.println("bookType:"+bookType);
        int i = iBookTypeService.updateBookType(bookType);
        return i;
    }

    /**
     * 根据Id删除
     * @param id
     * @return
     */
    @PostMapping("/deleteBookType/{id}")
    public int deleteBookType (@PathVariable Integer id) {
        int i = iBookTypeService.deleteBookType(id);
        return i;
    }


}

源码获取:俺的博客首页 "资源" 里下载!

猜你喜欢

转载自blog.csdn.net/yuyecsdn/article/details/125030721