Java实训项目--小型书店管理系统(ssm框架)

系列文章目录

MyBatis专栏:
一:Java实训项目–小型图书管理系统(ssm框架)
二:“spring与mybatis整合”考试题目测试与解析
三:“SSM框架整合+excel文件上传到数据库+数据更新“
等!

一、系统功能介绍

本系统后台采用ssm框架编写,前台采用当前主流的layui框架和jquery框架完成页面信息展示功能。
开发环境:
(1)开发工具:IntelliJ IDEA 2021.1
(2)数据库:mysql-8.0.16-winx64
(3)JDK:1.8.0_202
(4)JDBC:8.0.16

包结构:
在这里插入图片描述

数据库结构:

在这里插入图片描述

二、系统实现

1.登录注册子模块

登录注册子模块用于用户或管理员进入系统前的身份认证,用户在未登录的情况下,直接进入页面以及直接调用接口都会被拦截并跳转到登录注册页面。
登录时会校验账号是否存在,不存在则提示用户注册,存在则进一步判断密码是否正确,验证正确后会根据权限进入前台或后台,普通用户跳转到前台,管理员跳转到后台。如图3.1、图3.2所示。

图3.1 登录界面图:
在这里插入图片描述
图3.2 注册界面图:
在这里插入图片描述

2.用户信息管理子模块

用户信息管理子模块用于管理员对用户信息进行操作,该页面中包含的功能有浏览所有用户信息,用户信息查询,用户信息修改,添加用户以及删除用户。如图3.3、图3.4、图3.5、图3.6、图3.7所示。

图3.3浏览所有用户信息界面图:
在这里插入图片描述
图3.4修改用户信息界面图:
在这里插入图片描述
图3.5查询用户信息界面图:
在这里插入图片描述
图3.6 添加用户界面图:
在这里插入图片描述
图3.7 删除用户界面图:
在这里插入图片描述

3.用户密码管理子模块

用户密码管理模块是用于管理员对用户的密码进行修改或重置,由于在数据库中密码以数据摘要(md5)形式保存,因此不能查询到用户的密码原文,这也保障了用户的隐私和系统安全性。如图3.8所示。

图3.8用户密码管理界面图:
在这里插入图片描述

4.图书管理子模块

图书管理子模块是用于管理员对数据的操作,页面包含浏览所有图书,查询图书,添加图书,修改图书和删除图书,如图3.9、图3.10、图3.11、图3.12、图3.13所示。

图3.9浏览所有图书界面图:
在这里插入图片描述

图书管理子模块的增删查改与用户信息管理子模块的增删查改类似,就不截出来了。

5.图书类型管理子模块

图书类型子模块用于管理员对图书类型数据的操作,页面包含了浏览所有图书浏览,查询图书类型,添加图书类型,修改图书类型以及删除图书类型,如图3.4、图3.15、图3.16、图3.17、图3.18所示。

图3.14 浏览所有图书类型界面图:
在这里插入图片描述
图书类型管理子模块的增删查改与用户信息管理子模块的增删查改类似,就不截出来了。

6.订单管理子模块

订单管理子模块用于管理员操作用户提交的订单数据,页面包含浏览所有订单,查询订单,添加订单,修改订单以及删除订单,如图3.19、图3.20、图3.21、图3.22、图3.23所示。

图3.19浏览所有订单列表界面图:
在这里插入图片描述
订单管理子模块的增删查改与用户信息管理子模块的增删查改类似,就不截出来了。

7.前台购物模块

前台购物模块主要用于普通用户浏览书店内所有的图书商品信息,并且支持查询图书,用户可以在指定图书商品的右侧点击购买,填写数量后提交订单,如果库存不足或商品未上架,则提示错误信息,创建订单成功后订单默认处于“暂未处理”的状态,管理员可以在后台管理用户提交的订单。如图3.24、图3.25所示。

图3.24浏览图书商品信息界面图:
在这里插入图片描述
图3.25用户提交商品订单订单界面图:
在这里插入图片描述

三、关键代码

1.mapper层

UserMapper.java:

package com.bms.mapper;

import com.bms.pojo.User;
import com.bms.pojo.UserBasicVo;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.util.List;

@Mapper
@Repository
public interface UserMapper {
    public List<User> queryAll();
    public User queryByUsername(String username);
    public User queryById(Integer id);
    public int addUser(User user);
    public int deleteUser(Integer id);
    public User queryByUsernameAndPassword(String username,String password);
    public List<UserBasicVo> queryAllUserBasic();
    public List<UserBasicVo> queryUserBasic(User user);
    public List<UserBasicVo> queryUserBasicLike(User user);
    public int setUserPasswordById(User user);
    public int setUserPasswordByUsername(User user);
    public int setUserBasic(UserBasicVo user);

}

2.service层

UserService.java:

package com.bms.service;

import com.bms.pojo.CMD;
import com.bms.pojo.User;
import com.bms.pojo.UserBasicVo;

import java.util.List;

// CMD为po层包装类
public interface UserService {
    List<User> queryAll();
    User queryById(Integer id);
    User queryByUsername(String username);
    CMD register(User user);
    CMD login(User user);
    CMD queryAll2();
    CMD deleteUser(User user);
    CMD getUserBasicById(User user);
    CMD getUserBasicByUsername(User user);
    CMD getUserBasicByPhone(User user);
    CMD getUserBasicByPower(User user);
    CMD setUserPasswordSelf(User user);
    CMD setUserPassword(User user);
    CMD addUserByAdmin(User user);
    CMD setUserBasic(UserBasicVo user);

}

3.controller层

UserController.java:

package com.bms.controller;

import com.bms.pojo.CMD;
import com.bms.pojo.User;
import com.bms.pojo.UserBasicVo;
import com.bms.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpSession;

@RestController
public class UserController {
    @Autowired
    private UserService userService;

    /*用户登录*/
    @RequestMapping(value = "login",method = RequestMethod.POST)
    public CMD Login(@RequestBody User user, HttpSession session){

        CMD login = userService.login(user);
        session.setAttribute("user",login.getData());

        return login;
    }

    /*用户注册*/
    @RequestMapping(value = "register",method = RequestMethod.POST)
    public CMD Register(@RequestBody User user){
        //System.out.println(user);
        return userService.register(user);
    }

    /*获取基础用户信息*/
    @RequestMapping(value = "getUserBasic",method = RequestMethod.POST)
    public CMD getUserBasic(){
        //System.out.println(user);
        return userService.queryAll2();
    }

    /*通过ID查找用户信息*/
    @RequestMapping(value = "getUserBasicById",method = RequestMethod.POST)
    public CMD getUserBasicById(@RequestBody User user){
        //System.out.println(user);
        return userService.getUserBasicById(user);
    }

    /*通过账号查找用户信息*/
    @RequestMapping(value = "getUserBasicByUsername",method = RequestMethod.POST)
    public CMD getUserBasicByUsername(@RequestBody User user){
        //System.out.println(user);
        return userService.getUserBasicByUsername(user);
    }

    /*通过手机号查找用户信息*/
    @RequestMapping(value = "getUserBasicByPhone",method = RequestMethod.POST)
    public CMD getUserBasicByPhone(@RequestBody User user){
        //System.out.println(user);
        return userService.getUserBasicByPhone(user);
    }

    /*通过权限查找用户信息*/
    @RequestMapping(value = "getUserBasicByPower",method = RequestMethod.POST)
    public CMD getUserBasicByPower(@RequestBody User user){
        //System.out.println(user);
        return userService.getUserBasicByPower(user);
    }

    /*删除指定id的用户*/
    @RequestMapping(value = "deleteUser",method = RequestMethod.POST)
    public CMD deleteUser(@RequestBody User user){
        System.out.println(user);
        return userService.deleteUser(user);
    }

    /*修改指定账号的密码*/
    @RequestMapping(value = "setUserPassword",method = RequestMethod.POST)
    public CMD setUserPassword(@RequestBody User user){
        System.out.println(user);
        return userService.setUserPassword(user);
    }

    /*直接添加用户*/
    @RequestMapping(value = "addUserByAdmin",method = RequestMethod.POST)
    public CMD addUserByAdmin(@RequestBody User user){
        return userService.addUserByAdmin(user);
    }

    /*修改用户数据*/
    @RequestMapping(value = "setUserBasic",method = RequestMethod.POST)
    public CMD setUserBasic(@RequestBody UserBasicVo user){
        System.out.println(user.toString());
        return userService.setUserBasic(user);
    }

    /*退出登录*/
    @RequestMapping(value = "logout",method = RequestMethod.GET)
    public int logout(HttpSession session){
        session.removeAttribute("user");
        return 0;
    }


}

总结

代码资源:代码资源
代码资源

  • 6
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

加辣椒了吗?

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值