基于javaweb+mysql的springboot书城商城系统(java+springboot+vue+maven+mybatis+mysql)

基于javaweb+mysql的springboot书城商城系统(java+springboot+vue+maven+mybatis+mysql)

私信源码获取及调试交流

运行环境

Java≥8、MySQL≥5.7、Node.js≥10

开发工具

后端:eclipse/idea/myeclipse/sts等均可配置运行

前端:WebStorm/VSCode/HBuilderX等均可

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

基于javaweb的SpringBoot书城商城系统(java+springboot+vue+maven+mybatis+mysql)

一、项目运行 环境配置:

Jdk1.8 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。

项目技术:

Spring + SpringBoot+ mybatis + Maven + Vue 等等组成,B/S模式 + Maven管理等等。


@RestController
@RequestMapping("/api/msslyyPublisher")
@Api(tags = "出版社分类表")
public class MsslyyPublisherController {
    @Resource
    private MsslyyPublisherService msslyyPublisherService;
    @Resource
    private HttpServletRequest request;
    @Resource
    private UserService userService;

    public User getUser() {
        String token = request.getHeader("token");
        String username = JWT.decode(token).getAudience().get(0);
        return userService.getOne(Wrappers.<User>lambdaQuery().eq(User::getUsername, username));
    }

    @ApiOperation(value = "新增出版社分类",notes = "")
    @PostMapping
    public Result<?> save(@RequestBody MsslyyPublisher msslyyPublisher) {
        msslyyPublisherService.save(msslyyPublisher);
        return Result.success();
    }

    @ApiOperation(value = "更新出版社分类",notes = "")
    @PutMapping
    public Result<?> update(@RequestBody MsslyyPublisher msslyyPublisher) {
        msslyyPublisherService.updateById(msslyyPublisher);
        return Result.success();
    }

    @ApiOperation(value = "删除出版社分类",notes = "")
    @DeleteMapping("/{id}")
    public Result<?> delete(@PathVariable Long id) {
        msslyyPublisherService.removeById(id);
        return Result.success();
    }

    @ApiOperation(value = "根据id查询",notes = "")
    @GetMapping("/{id}")
    public Result<?> findById(@PathVariable Long id) {
        return Result.success(msslyyPublisherService.getById(id));
    }

    @ApiOperation(value = "查询全部",notes = "")
    @GetMapping
    }

    @ApiOperation(value = "删除订单详情",notes = "")
    @DeleteMapping("/{id}")
    public Result<?> delete(@PathVariable Long id) {
        msslyyOrderDetailService.removeById(id);
        return Result.success();
    }

    @ApiOperation(value = "根据id查询",notes = "")
    @GetMapping("/{id}")
    public Result<?> findById(@PathVariable Long id) {
        return Result.success(msslyyOrderDetailService.getById(id));
    }

    @ApiOperation(value = "查询全部",notes = "")
    @GetMapping
    public Result<?> findAll() {
        List<MsslyyOrderDetail> list = msslyyOrderDetailService.list();
        return Result.success(list);
    }

    @ApiOperation(value = "分页",notes = "")
    @GetMapping("/page")
    public Result<?> findPage(@RequestParam(required = false, defaultValue = "") String name,
                                                @RequestParam(required = false, defaultValue = "1") Integer pageNum,
                                                @RequestParam(required = false, defaultValue = "10") Integer pageSize) {
        LambdaQueryWrapper<MsslyyOrderDetail> query = Wrappers.<MsslyyOrderDetail>lambdaQuery().orderByDesc(MsslyyOrderDetail::getId);
        if (StrUtil.isNotBlank(name)) {
            query.like(MsslyyOrderDetail::getBookId, name);
        }
        IPage<MsslyyOrderDetail> page = msslyyOrderDetailService.page(new Page<>(pageNum, pageSize), query);
        return Result.success(page);
    }

}

            Map<String, Object> row1 = new LinkedHashMap<>();
            row1.put("名称", user.getUsername());
            row1.put("手机", user.getPhone());
            row1.put("邮箱", user.getEmail());
            list.add(row1);
        }

        // 2. 写excel
        ExcelWriter writer = ExcelUtil.getWriter(true);
        writer.write(list, true);

        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
        String fileName = URLEncoder.encode("用户信息", "UTF-8");
        response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx");

        ServletOutputStream out = response.getOutputStream();
        writer.flush(out, true);
        writer.close();
        IoUtil.close(System.out);
    }

}

@RestController
@RequestMapping("/api/msslyyCart")
    @GetMapping("/getFootprintById/{id}")
    public Result<?> getFootprintById(
            @PathVariable Long id,
            @RequestParam(required = false, defaultValue = "1") Integer pageNum,
            @RequestParam(required = false, defaultValue = "10") Integer pageSize) {
        List books = msslyyFootprintService.getFootprintById(id);
        Page pages = pageUtils.getPages(pageNum, pageSize, books);
        return Result.success(pages);
    }

    @GetMapping("/getCartById/{id}")
    public Result<?> getCartById(
            @PathVariable Long id,
            @RequestParam(required = false, defaultValue = "1") Integer pageNum,
            @RequestParam(required = false, defaultValue = "10") Integer pageSize) {
        List books = msslyyCartService.getCartById(id);
        Page pages = pageUtils.getPages(pageNum, pageSize, books);
        return Result.success(pages);
    }

}

    @GetMapping("/page")
    public Result<?> findPage(@RequestParam(required = false, defaultValue = "") String name,
                              @RequestParam(required = false, defaultValue = "") Long categoryId,
                              @RequestParam(required = false, defaultValue = "") Long publisherId,
                              @RequestParam(required = false, defaultValue = "1") Integer pageNum,
                              @RequestParam(required = false, defaultValue = "10") Integer pageSize) {
        LambdaQueryWrapper<MsslyyBook> query = Wrappers.<MsslyyBook>lambdaQuery().orderByDesc(MsslyyBook::getId);
        if (StrUtil.isNotBlank(name)) {
            query.like(MsslyyBook::getBookTitle, name);
        }
        if (categoryId!=0) {
            query.eq(MsslyyBook::getCategoryId, categoryId);
        }
        if (publisherId!=0) {
            query.eq(MsslyyBook::getPublisherId, publisherId);
        }
        IPage<MsslyyBook> page = msslyyBookService.page(new Page<>(pageNum, pageSize), query);

        page.getRecords().forEach(e->{
            msslyyPublisherService.list().forEach(p->{
                if (e.getPublisherId()==p.getId()){
                    e.setPublisherName(p.getPublisherName());
                }
            });
            msslyyCategoryService.list().forEach(c->{
                if (e.getCategoryId()==c.getId()){
                    e.setCategoryName(c.getCategoryName());
                }
            });
        });
        return Result.success(page);
    }

    @GetMapping("/getBookListById/{id}")
    public Result<?> getBookListById(
            @PathVariable Long id,
            @RequestParam(required = false, defaultValue = "1") Integer pageNum,
            @RequestParam(required = false, defaultValue = "10") Integer pageSize) {
        List books = msslyyWishlistService.getBookListById(id);
        Page pages = pageUtils.getPages(pageNum, pageSize, books);
        return Result.success(pages);
    }

    @GetMapping("/getBookListById2/{id}")
    public Result<?> getBookListById2(
            @PathVariable Long id) {
        List books = msslyyWishlistService.getBookListById(id);

@RestController
@RequestMapping("/api/permission")
@Api(tags = "后台权限表")
public class PermissionController {
    @Resource
    private PermissionService permissionService;
    @Resource
    private LogService logService;

    @ApiOperation(value = "新增权限",notes = "")
    @PostMapping
    public Result<?> save(@RequestBody Permission permission) {
        logService.log(StrUtil.format("新增权限菜单:{}", permission.getName()));
        return Result.success(permissionService.save(permission));
    }

    @ApiOperation(value = "更新权限",notes = "")
    @PutMapping
    public Result<?> update(@RequestBody Permission permission) {
        logService.log(StrUtil.format("更新权限菜单:{}", permission.getName()));
        return Result.success(permissionService.updateById(permission));
    }

    @ApiOperation(value = "删除权限",notes = "")
    @DeleteMapping("/{id}")
    public Result<?> delete(@PathVariable Long id) {
        Permission permission = permissionService.getById(id);
        logService.log(StrUtil.format("删除权限菜单:{}", permission.getName()));
        permissionService.delete(id);
        return Result.success();
    }

    @ApiOperation(value = "根据id查询",notes = "")
    @GetMapping("/{id}")
        return Result.success();
    }

    @ApiOperation(value = "更新分配标签",notes = "")
    @PutMapping
    public Result<?> update(@RequestBody MsslyyLabelBook msslyyLabelBook) {
        msslyyLabelBookService.updateById(msslyyLabelBook);
        return Result.success();
    }

    @ApiOperation(value = "删除分配标签",notes = "")
    @DeleteMapping("/{id}")
    public Result<?> delete(@PathVariable Long id) {
        msslyyLabelBookService.removeById(id);
        return Result.success();
    }

    @ApiOperation(value = "根据id查询",notes = "")
    @GetMapping("/{id}")
    public Result<?> findById(@PathVariable Long id) {
        return Result.success(msslyyLabelBookService.getById(id));
    }

    @ApiOperation(value = "查询全部",notes = "")
    @GetMapping
    public Result<?> findAll() {
        List<MsslyyLabelBook> list = msslyyLabelBookService.list();
        return Result.success(list);
    }

    @ApiOperation(value = "分页",notes = "")
    @GetMapping("/page")
    public Result<?> findPage(@RequestParam(required = false, defaultValue = "") String name,
                                                @RequestParam(required = false, defaultValue = "1") Integer pageNum,
                                                @RequestParam(required = false, defaultValue = "10") Integer pageSize) {
        LambdaQueryWrapper<MsslyyLabelBook> query = Wrappers.<MsslyyLabelBook>lambdaQuery().orderByDesc(MsslyyLabelBook::getId);
        if (StrUtil.isNotBlank(name)) {
            query.like(MsslyyLabelBook::getBookId, name);
        }
        IPage<MsslyyLabelBook> page = msslyyLabelBookService.page(new Page<>(pageNum, pageSize), query);
        return Result.success(page);
    }

}
        if (StrUtil.isNotBlank(name)) {
            query.like(MsslyyComment::getBookId, name);
        }
        IPage<MsslyyComment> page = msslyyCommentService.page(new Page<>(pageNum, pageSize), query);
        return Result.success(page);
    }

}

@RestController
@RequestMapping("/api/msslyyFootprint")
@Api(tags = "足迹表")
public class MsslyyFootprintController {
    @Resource
    private MsslyyFootprintService msslyyFootprintService;
    @Resource
    private HttpServletRequest request;
    @Resource
    private UserService userService;

    public User getUser() {
        String token = request.getHeader("token");

@RestController
@RequestMapping("/api/msslyyWishlist")
@Api(tags = "收藏表")
public class MsslyyWishlistController {
    @Resource
    private MsslyyWishlistService msslyyWishlistService;
    @Resource
    private HttpServletRequest request;
    @Resource
    private UserService userService;
    @Autowired
    private RedisUtil redisUtil;
    public User getUser() {
        String token = request.getHeader("token");
        String username = JWT.decode(token).getAudience().get(0);
        return userService.getOne(Wrappers.<User>lambdaQuery().eq(User::getUsername, username));
    }
    @GetMapping("/add/{bookId}/{userId}")
    public Result<?> add(@PathVariable Long bookId,@PathVariable Long userId) {
        int i = msslyyWishlistService.addWishList(bookId, userId);
        return Result.success(i);
    }

    @ApiOperation(value = "新增收藏",notes = "")
    @PostMapping
    public Result<?> save(@RequestBody MsslyyWishlist msslyyWishlist) {
                                                @RequestParam(required = false, defaultValue = "10") Integer pageSize) {
        LambdaQueryWrapper<MsslyyAddressMessaget> query = Wrappers.<MsslyyAddressMessaget>lambdaQuery().orderByDesc(MsslyyAddressMessaget::getId);
        if (StrUtil.isNotBlank(name)) {
            query.like(MsslyyAddressMessaget::getAddressMessageName, name);
        }
        IPage<MsslyyAddressMessaget> page = msslyyAddressMessagetService.page(new Page<>(pageNum, pageSize), query);
        return Result.success(page);
    }

}

@RestController
@RequestMapping("/api/msslyyWishlist")
@Api(tags = "收藏表")
public class MsslyyWishlistController {
    @Resource
    private MsslyyWishlistService msslyyWishlistService;
    @Resource
    private HttpServletRequest request;
    @Resource
    private UserService userService;
    @Autowired
    @Resource
    private MsslyyUserService msslyyUserService;
    @Resource
    private HttpServletRequest request;
    @Resource
    private UserService userService;
    @Resource
    private LogService logService;

    /**
     * 登录
     *
     * @param msslyyUser
     * @return
     */
    @ApiOperation(value = "前台用户登录",notes = "")
    @PostMapping("/login")
    public Result<MsslyyUser> login(@RequestBody MsslyyUser msslyyUser) {
        MsslyyUser res = msslyyUserService.login(msslyyUser);
        // 生成token
        String token = JWT.create().withAudience(res.getUserUsername()).sign(Algorithm.HMAC256(res.getUserPassword()));
        res.setToken(token);

        logService.log(msslyyUser.getUserUsername(), StrUtil.format("用户 {} 登录书店", msslyyUser.getUserUsername()));
        return Result.success(res);
    }

    /**
     * 注册
     *
     * @param msslyyUser
     * @param request
     * @return
     */
    @ApiOperation(value = "前台用户注册",notes = "")
    @PostMapping("/register")
    public Result<MsslyyUser> register(@RequestBody MsslyyUser msslyyUser, HttpServletRequest request) {
        if (msslyyUser.getUserPassword() == null) {
            msslyyUser.setUserPassword("123456");
        }
        MsslyyUser dbUser = msslyyUserService.register(msslyyUser);
        request.getSession().setAttribute("user1", msslyyUser);
        logService.log(msslyyUser.getUserUsername(), StrUtil.format("用户 {} 注册账号成功", msslyyUser.getUserUsername()));
        return Result.success(dbUser);
    }

    @GetMapping("/total")
    public Result<?> getTotal() {
        return Result.success(msslyyUserService.count());
    }

    public User getUser() {
        String token = request.getHeader("token");
        String username = JWT.decode(token).getAudience().get(0);
    @ApiOperation(value = "分页",notes = "")
    @GetMapping("/page")
    public Result<?> findPage(@RequestParam(required = false, defaultValue = "") String name,
                              @RequestParam(required = false, defaultValue = "") Long categoryId,
                              @RequestParam(required = false, defaultValue = "") Long publisherId,
                              @RequestParam(required = false, defaultValue = "1") Integer pageNum,
                              @RequestParam(required = false, defaultValue = "10") Integer pageSize) {
        LambdaQueryWrapper<MsslyyBook> query = Wrappers.<MsslyyBook>lambdaQuery().orderByDesc(MsslyyBook::getId);
        if (StrUtil.isNotBlank(name)) {
            query.like(MsslyyBook::getBookTitle, name);
        }
        if (categoryId!=0) {
            query.eq(MsslyyBook::getCategoryId, categoryId);
        }
        if (publisherId!=0) {
            query.eq(MsslyyBook::getPublisherId, publisherId);
        }
        IPage<MsslyyBook> page = msslyyBookService.page(new Page<>(pageNum, pageSize), query);

        page.getRecords().forEach(e->{
            msslyyPublisherService.list().forEach(p->{
                if (e.getPublisherId()==p.getId()){
                    e.setPublisherName(p.getPublisherName());
                }
            });
            msslyyCategoryService.list().forEach(c->{
                if (e.getCategoryId()==c.getId()){
                    e.setCategoryName(c.getCategoryName());
                }
            });
        });
        return Result.success(page);
    }

    @GetMapping("/getBookListById/{id}")
    public Result<?> getBookListById(
            @PathVariable Long id,
            @RequestParam(required = false, defaultValue = "1") Integer pageNum,
            @RequestParam(required = false, defaultValue = "10") Integer pageSize) {
        List books = msslyyWishlistService.getBookListById(id);
        Page pages = pageUtils.getPages(pageNum, pageSize, books);
        return Result.success(pages);
    private MsslyyLabelBookService msslyyLabelBookService;
    @Resource
    private HttpServletRequest request;
    @Resource
    private UserService userService;

    public User getUser() {
        String token = request.getHeader("token");
        String username = JWT.decode(token).getAudience().get(0);
        return userService.getOne(Wrappers.<User>lambdaQuery().eq(User::getUsername, username));
    }

    @ApiOperation(value = "新增分配标签",notes = "")
    @PostMapping
    public Result<?> save(@RequestBody MsslyyLabelBook msslyyLabelBook) {
        msslyyLabelBookService.save(msslyyLabelBook);
        return Result.success();
    }

    @ApiOperation(value = "更新分配标签",notes = "")
    @PutMapping
    public Result<?> update(@RequestBody MsslyyLabelBook msslyyLabelBook) {
        msslyyLabelBookService.updateById(msslyyLabelBook);
        return Result.success();
    }

    @ApiOperation(value = "删除分配标签",notes = "")
    @DeleteMapping("/{id}")
    public Result<?> delete(@PathVariable Long id) {
        msslyyLabelBookService.removeById(id);
        return Result.success();
    }

    @ApiOperation(value = "根据id查询",notes = "")
    @GetMapping("/{id}")
    public Result<?> findById(@PathVariable Long id) {
        return Result.success(msslyyLabelBookService.getById(id));
    }

    @ApiOperation(value = "查询全部",notes = "")
    @GetMapping
    public Result<?> findAll() {
    }

}

@RestController
@RequestMapping("/api/user")
@Api(tags = "后台用户表")
public class UserController {

    @Resource
    private UserService userService;

    @Resource
    private LogService logService;
    @GetMapping("/findByUsername/{username}")
    @ApiOperation(value = "新增图书分类",notes = "")
    @PostMapping
    public Result<?> save(@RequestBody MsslyyCategory msslyyCategory) {
        msslyyCategoryService.save(msslyyCategory);
        return Result.success();
    }

    @ApiOperation(value = "更新图书分类",notes = "")
    @PutMapping
    public Result<?> update(@RequestBody MsslyyCategory msslyyCategory) {
        msslyyCategoryService.updateById(msslyyCategory);
        return Result.success();
    }

    @ApiOperation(value = "删除图书分类",notes = "")
    @DeleteMapping("/{id}")
    public Result<?> delete(@PathVariable Long id) {
        msslyyCategoryService.removeById(id);
        return Result.success();
    }

    @ApiOperation(value = "根据id查询",notes = "")
    @GetMapping("/{id}")
    public Result<?> findById(@PathVariable Long id) {
        return Result.success(msslyyCategoryService.getById(id));
    }

    @ApiOperation(value = "查询全部",notes = "")
    @GetMapping
    public Result<?> findAll() {
        List<MsslyyCategory> list = msslyyCategoryService.list();
        return Result.success(list);
    }

    @ApiOperation(value = "分页",notes = "")
    @GetMapping("/page")
    public Result<?> findPage(@RequestParam(required = false, defaultValue = "") String name,
                                                @RequestParam(required = false, defaultValue = "1") Integer pageNum,
                                                @RequestParam(required = false, defaultValue = "10") Integer pageSize) {
        LambdaQueryWrapper<MsslyyCategory> query = Wrappers.<MsslyyCategory>lambdaQuery().orderByDesc(MsslyyCategory::getId);
        if (StrUtil.isNotBlank(name)) {
            query.like(MsslyyCategory::getCategoryName, name);
        }
        IPage<MsslyyCategory> page = msslyyCategoryService.page(new Page<>(pageNum, pageSize), query);
        return Result.success(page);
    }

}
    public User getUser() {
        String token = request.getHeader("token");
        String username = JWT.decode(token).getAudience().get(0);
        return userService.getOne(Wrappers.<User>lambdaQuery().eq(User::getUsername, username));
    }

    @ApiOperation(value = "新增前台用户",notes = "")
    @PostMapping
    public Result<?> save(@RequestBody MsslyyUser msslyyUser) {
        msslyyUserService.save(msslyyUser);
        return Result.success();
    }

    @ApiOperation(value = "更新前台用户",notes = "")
    @PutMapping
    public Result<?> update(@RequestBody MsslyyUser msslyyUser) {
        msslyyUserService.updateById(msslyyUser);
        return Result.success();
    }

    @ApiOperation(value = "删除前台用户",notes = "")
    @DeleteMapping("/{id}")
    public Result<?> delete(@PathVariable Long id) {
        msslyyUserService.removeById(id);
        return Result.success();
    }

    @ApiOperation(value = "根据id查询",notes = "")
    @GetMapping("/{id}")
    public Result<?> findById(@PathVariable Long id) {
        return Result.success(msslyyUserService.getById(id));
    }

    @ApiOperation(value = "查询全部",notes = "")
    @GetMapping
    public Result<?> findAll() {
        List<MsslyyUser> list = msslyyUserService.list();
        return Result.success(list);
    }

    @ApiOperation(value = "分页",notes = "")
    @GetMapping("/page")
    public Result<?> findPage(@RequestParam(required = false, defaultValue = "") String name,
                              @RequestParam(required = false, defaultValue = "1") Integer pageNum,
                              @RequestParam(required = false, defaultValue = "10") Integer pageSize) {
        LambdaQueryWrapper<MsslyyUser> query = Wrappers.<MsslyyUser>lambdaQuery().orderByDesc(MsslyyUser::getId);
        if (StrUtil.isNotBlank(name)) {
        msslyyAddressMessagetService.removeById(id);
        return Result.success();
    }

    @ApiOperation(value = "根据id查询收货地址",notes = "")
    @GetMapping("/{id}")
    public Result<?> findById(@PathVariable Long id) {
        return Result.success(msslyyAddressMessagetService.getById(id));
    }

    @ApiOperation(value = "查询用户全部收货地址",notes = "")
    @GetMapping
    public Result<?> findAll() {
        List<MsslyyAddressMessaget> list = msslyyAddressMessagetService.list();
        return Result.success(list);
    }

    @ApiOperation(value = "分页",notes = "")
    @GetMapping("/page")
    public Result<?> findPage(@RequestParam(required = false, defaultValue = "") String name,
                                                @RequestParam(required = false, defaultValue = "1") Integer pageNum,
                                                @RequestParam(required = false, defaultValue = "10") Integer pageSize) {
        LambdaQueryWrapper<MsslyyAddressMessaget> query = Wrappers.<MsslyyAddressMessaget>lambdaQuery().orderByDesc(MsslyyAddressMessaget::getId);
        if (StrUtil.isNotBlank(name)) {
            query.like(MsslyyAddressMessaget::getAddressMessageName, name);
        }
        IPage<MsslyyAddressMessaget> page = msslyyAddressMessagetService.page(new Page<>(pageNum, pageSize), query);
        return Result.success(page);
    }

}

    }

    @ApiOperation(value = "根据id查询",notes = "")
    @GetMapping("/{id}")
    public Result<?> findById(@PathVariable Long id) {
        return Result.success(msslyyPublisherService.getById(id));
    }

    @ApiOperation(value = "查询全部",notes = "")
    @GetMapping
    public Result<?> findAll() {
        List<MsslyyPublisher> list = msslyyPublisherService.list();
        return Result.success(list);
    }

    @ApiOperation(value = "分页",notes = "")
    @GetMapping("/page")
    public Result<?> findPage(@RequestParam(required = false, defaultValue = "") String name,
                                                @RequestParam(required = false, defaultValue = "1") Integer pageNum,
                                                @RequestParam(required = false, defaultValue = "10") Integer pageSize) {
        LambdaQueryWrapper<MsslyyPublisher> query = Wrappers.<MsslyyPublisher>lambdaQuery().orderByDesc(MsslyyPublisher::getId);
        if (StrUtil.isNotBlank(name)) {
            query.like(MsslyyPublisher::getPublisherName, name);
        }
        IPage<MsslyyPublisher> page = msslyyPublisherService.page(new Page<>(pageNum, pageSize), query);
        return Result.success(page);
    }

}

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您生成一份基于Spring BootMyBatis Plus和VueJavaWeb购物商城项目。以下是项目的详细描述: ## 项目概述 本项目是一个基于Spring BootMyBatis Plus和VueJavaWeb购物商城项目,主要实现了用户注册、登录、商品浏览、购物车、订单等功能。前端使用Vue框架进行开发,后端使用Spring BootMyBatis Plus进行开发,数据库使用MySQL。 ## 技术栈 - 前端:VueVue Router、Vuex、Element UI等 - 后端:Spring BootMyBatis Plus、MySQL等 ## 功能模块 本项目主要包含以下几个功能模块: - 用户模块:用户注册、登录、个人信息管理等功能。 - 商品模块:商品浏览、商品详情、商品搜索等功能。 - 购物车模块:添加、删除、修改购物车商品等功能。 - 订单模块:下单、支付、订单查询等功能。 ## 项目结构 本项目采用前后端分离的方式进行开发,前端代码和后端代码分别放在不同的目录下。 - `backend`目录:后端代码目录。 - `frontend`目录:前端代码目录。 后端代码目录结构: ``` backend ├── src │ ├── main │ │ ├── java │ │ │ └── com │ │ │ └── example │ │ │ └── shopping │ │ │ ├── config // Spring配置文件 │ │ │ ├── controller // 控制器 │ │ │ ├── dao // 数据访问层 │ │ │ ├── entity // 实体类 │ │ │ ├── service // 服务层 │ │ │ └── ShoppingApplication.java │ │ └── resources │ │ ├── application.yml // 应用配置文件 │ │ ├── mapper // MyBatis XML配置文件 │ │ └── static // 静态资源文件 │ └── test // 测试代码目录 ``` 前端代码目录结构: ``` frontend ├── src │ ├── assets // 静态资源文件 │ ├── components // 组件 │ ├── router // 路由配置 │ ├── store // Vuex状态管理 │ ├── views // 页面 │ ├── App.vue // 根组件 │ └── main.js // 入口文件 ``` ## 开发环境 - JDK 1.8 - Maven 3.3+ - Node.js 10+ - Vue CLI 3.0+ ## 如何运行项目 1. 克隆代码到本地: ``` git clone https://github.com/yourusername/shopping-mall.git ``` 2. 进入`backend`目录,修改`application.yml`文件中的MySQL数据库连接信息。 3. 在MySQL中创建名为`shopping`的数据库。 4. 运行后端服务: ``` cd backend mvn spring-boot:run ``` 5. 进入`frontend`目录,安装依赖: ``` cd frontend npm install ``` 6. 运行前端服务: ``` npm run serve ``` 7. 打开浏览器,访问`http://localhost:8080`即可。 以上就是基于Spring BootMyBatis Plus和VueJavaWeb购物商城项目的详细描述,希望对您有所帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值