Java如何实现鲜花商城系统

项目介绍

该项目为前后台项目,分为普通用户与管理员两种角色,前台普通用户登录,后台管理员登录;

管理员角色包含以下功能:

管理员登录,用户管理,鲜花类别管理,鲜花管理,订单管理并发货,留言管理,系统公告管理等功能。

用户角色包含以下功能:

该网站提供用户首页、用户注册登录、鲜花详情查看、商品加入购物车、订单确认、个人订单查看、商城留言板以及商城公告等多项功能。

立即学习“Java免费学习笔记(深入)”;

环境需要

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+jQuery+Ajax

使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;

2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;

3. 将项目中jdbc.properties配置文件中的数据库配置改为自己的配置;

4. 运行项目,输入localhost:8080/ 登录

用户账号/密码: user/123456

管理员账号/密码:admin/admin

效果图展示

Java如何实现鲜花商城系统

Java如何实现鲜花商城系统

Java如何实现鲜花商城系统

Java如何实现鲜花商城系统

Java如何实现鲜花商城系统

Java如何实现鲜花商城系统

核心代码

商品管理控制层

/** * 商品 **/@RestController@RequestMapping("flower")public class FlowerController {    @Autowired    FlowersService flowerService;     @Autowired    FlowersDao flowersDao;     @RequestMapping("/test")    R test() {        R r = new R();        return r;    }     //find    @RequestMapping("/find")    R find(@RequestParam("page") int page, @RequestParam("searchKey") String searchKey, @RequestParam("searchType") String searchType) {        R r = new R();        List flowers = flowerService.find(searchKey, searchType);        if (flowers == null) {            return r.setCode(2000);        }        return getResponse(flowers, page, Constant.SHOW_PAGE_SIZE, r);    }     // 管理员查询所有    @RequestMapping("/findAll")    R findAll(@RequestParam("page") int page, @RequestParam("searchKey") String searchKey) {        R r = new R();        List flowers = flowerService.findAll(searchKey);        if (flowers == null) {            return r.setCode(2000);        }        return getResponse(flowers, page, Constant.PAGE_SIZE, r);    }     // 返回结果    private R getResponse(List flowers, int page, int pageSize, R r) {        Map map = new HashMap();        List items = flowers.size() >= page * pageSize ?                flowers.subList((page - 1) * pageSize, page * pageSize)                : flowers.subList((page - 1) * pageSize, flowers.size());        int len = flowers.size() % pageSize == 0 ? flowers.size() / pageSize                : (flowers.size() / pageSize + 1);        for (Flower item : items) {            if (item.getImg_guid() == null) {                item.setImg_guid(Constant.DEFAULT_IMG);            }            item.setImg_guid(Constant.IMG_USE_PATH + item.getImg_guid());        }        map.put("items", items);        map.put("len", len);        return r.setCode(2000).setData(map);    }     @RequestMapping("/create")    R create(@RequestBody Flower flower) {        R r = new R();        int ans = flowerService.add(flower);        if (ans == 1) {            return r.setCode(2000).setMsg(HttpMsg.ADD_FLOWER_OK);        }        return r.setCode(4000).setMsg(HttpMsg.ADD_FLOWER_FAILED);    }     @RequestMapping("/update")    R update(@RequestBody Flower flower) {        R r = new R();        int ans = flowerService.update(flower);        if (ans >= 0) {            return r.setCode(2000).setMsg(HttpMsg.UPDATE_FLOWER_OK);        }        return r.setCode(4000).setMsg(HttpMsg.UPDATE_FLOWER_FAILED);    }     @RequestMapping("/changeState")    R changeState(@RequestBody Flower flower) {        R r = new R();        flowersDao.changeState(flower);        String msg = flower.getState() == 1?HttpMsg.GOODS_UP_OK:HttpMsg.GOODS_DOWN_OK;        return r.setCode(2000).setMsg(msg);    }     // 保存上传的图片    @RequestMapping("/updateImg")    R updateImg(@RequestParam("file") MultipartFile file) {        R r = new R();        // 只接收 jpg/png 图片        String filename = file.getOriginalFilename();        if (!filename.endsWith(".jpg") && !filename.endsWith(".png")){            return r.setCode(4000).setMsg(HttpMsg.ERROR_FILE_TYPE);        }        String img_guid = UUID.randomUUID().toString().replaceAll("-", "") + ".jpg";        try {            savePic(file.getInputStream(), img_guid);            return r.setCode(2000).setMsg(HttpMsg.UPDATE_PIC_OK).setData(img_guid);        } catch (IOException e) {            return r.setCode(4000).setMsg(HttpMsg.UPDATE_PIC_FAILED);        }    }     @PutMapping("/updateImgGuid")    R updateImgGuid(@RequestParam("guid") String guid, @RequestParam("id") int id) {        R r = new R();        int ans = flowerService.updateImg(guid, id);        if (ans == 1) {            return r.setCode(2000).setMsg(HttpMsg.UPDATE_PIC_OK);        }        return r.setCode(4000).setMsg(HttpMsg.UPDATE_PIC_FAILED);    }     @DeleteMapping("/delete")    R delete(@RequestParam("id") int id) {        R r = new R();        int ans = flowerService.delete(id);        if (ans == 1) {            return r.setCode(2000).setMsg(HttpMsg.DELETE_FLOWER_OK);        }        return r.setCode(4000).setMsg(HttpMsg.DELETE_FLOWER_FAILED);    }     private void savePic(InputStream inputStream, String fileName) {        OutputStream os = null;        try {            String path = Constant.IMG_PATH;            // 1K的数据缓冲            byte[] bs = new byte[1024];            // 读取到的数据长度            int len;            // 输出的文件流保存到本地文件            os = new FileOutputStream(new File(path + fileName));            // 开始读取            while ((len = inputStream.read(bs)) != -1) {                os.write(bs, 0, len);            }        } catch (Exception e) {            e.printStackTrace();        } finally {            // 完毕,关闭所有链接            try {                os.close();                inputStream.close();            } catch (IOException e) {                e.printStackTrace();            }        }    }}

登录后复制

订单管理控制层

/** * 用户 **/@RestController@RequestMapping("order")public class OrderController {    @Autowired    OrderService orderService;    @Autowired    UserDao userDao;    @Autowired    OrderDao orderDao;    @Autowired    FlowersDao flowersDao;     @RequestMapping("/test")    R test() {        R r = new R();        return r.setCode(4000).setMsg(Constant.IMG_PATH).setData(orderDao.findAll(null));    }     @RequestMapping("/queryByAccount")    R queryByAccount(@RequestParam("account") String account) {        R r = new R();        if (StringUtil.isEmpty(account)) {            return r.setCode(4000).setMsg(HttpMsg.INVALID_PARAM);        }        List orders = orderService.queryByAccount(account);        return r.setCode(2000).setData(orders);    }     @RequestMapping("/find")    R find(@RequestParam("page") int page, @RequestParam("searchKey") String searchKey, @RequestParam("account") String account) {        R r = new R();        Map map = new HashMap();        List orders = orderService.find(searchKey, account);        if (orders == null) {            return r.setCode(2000);        }        map.put("items", orders);        map.put("len", orders.size());        return r.setCode(2000).setData(map);    }     @RequestMapping("/findAll")    R findAll(@RequestParam("page") int page, @RequestParam("searchKey") String searchKey) {        R r = new R();        Map map = new HashMap();        List orders = orderService.findAll(searchKey);        if (orders == null) {            return r.setCode(2000);        }        List items = orders.size() >= page * Constant.PAGE_SIZE ?                orders.subList((page - 1) * Constant.PAGE_SIZE, page * Constant.PAGE_SIZE)                : orders.subList((page - 1) * Constant.PAGE_SIZE, orders.size());        int len = orders.size() % Constant.PAGE_SIZE == 0 ? orders.size() / Constant.PAGE_SIZE                : (orders.size() / Constant.PAGE_SIZE + 1);        List vos = new ArrayList();        for (Order item : items) {            User user = userDao.queryById(item.getUid());            OrderVo vo = new OrderVo();            vo.setAddress(user.getAddress()).setPhone(user.getPhone()).setUsername(user.getName())                    .setAmount(item.getAmount()).setFlower(item.getFlower()).setId(item.getId())                    .setUid(item.getUid()).setOrder_guid(item.getOrder_guid()).setPrice(item.getPrice())                    .setState(item.getState());            vos.add(vo);        }        map.put("items", vos);        map.put("len", len);        return r.setCode(2000).setData(map);    }     @RequestMapping("/update")    R update(@RequestBody Order order) {        R r = new R();        int ans = orderService.update(order);        if (ans >= 0) {            return r.setCode(2000).setMsg(HttpMsg.UPDATE_USER_OK);        }        return r.setCode(4000).setMsg(HttpMsg.UPDATE_USER_FAILED);    }     @RequestMapping("/changeState")    R changeState(@RequestBody Order order) {        orderDao.changeState(order);        return new R().setCode(2000).setMsg(HttpMsg.UPDATE_ORDER_OK);    }     @DeleteMapping("/delete")    R delete(@RequestParam("id") int id) {        R r = new R();        int ans = orderService.delete(id);        if (ans == 1) {            return r.setCode(2000).setMsg(HttpMsg.DELETE_USER_OK);        }        return r.setCode(4000).setMsg(HttpMsg.DELETE_USER_FAILED);    }}

登录后复制

用户管理控制层

/** * 用户 **/@RestController@RequestMapping("user")public class UserController {    @Autowired    UserService userService;    @Autowired    UserDao dao;     @RequestMapping("/test")    R test() {        R r = new R();        return r.setCode(4000).setMsg(Constant.IMG_PATH).setData(dao.findAll());    }     @RequestMapping("/queryInfoByAccount")    R queryInfoByAccount(@RequestParam("account") String account) {        R r = new R();        if (StringUtil.isEmpty(account)){            return r.setCode(4000).setMsg(HttpMsg.INVALID_PARAM);        }        User loginUser = userService.queryInfo(account);        if (loginUser == null){            return r.setCode(4000).setMsg(HttpMsg.INVALID_USER);        }        return r.setCode(2000).setData(loginUser);    }      @RequestMapping("/find")    R find(@RequestParam("page") int page, @RequestParam("searchKey") String searchKey) {        R r = new R();        Map map = new HashMap();        List users = userService.find(searchKey);        if (users == null) {            return r.setCode(2000);        }        List items = users.size() >= page * Constant.PAGE_SIZE ?                users.subList((page - 1) * Constant.PAGE_SIZE, page * Constant.PAGE_SIZE)                : users.subList((page - 1) * Constant.PAGE_SIZE, users.size());        int len = users.size() % Constant.PAGE_SIZE == 0 ? users.size() / Constant.PAGE_SIZE                : (users.size() / Constant.PAGE_SIZE + 1);        map.put("items", items);        map.put("len", len);        return r.setCode(2000).setData(map);    }      @RequestMapping("/create")    R create(@RequestBody User user) {        R r = new R();        int ans = userService.add(user);        if (ans == 1) {            return r.setCode(2000).setMsg(HttpMsg.ADD_USER_OK);        }        return r.setCode(4000).setMsg(HttpMsg.ADD_USER_FAILED);    }     @RequestMapping("/update")    R update(@RequestBody User user) {        R r = new R();        int ans = userService.update(user);        if (ans >= 0) {            return r.setCode(2000).setMsg(HttpMsg.UPDATE_USER_OK);        }        return r.setCode(4000).setMsg(HttpMsg.UPDATE_USER_FAILED);    }      @DeleteMapping("/delete")    R delete(@RequestParam("id") int id) {        R r = new R();        int ans = userService.delete(id);        if (ans == 1) {            return r.setCode(2000).setMsg(HttpMsg.DELETE_USER_OK);        }        return r.setCode(4000).setMsg(HttpMsg.DELETE_USER_FAILED);    }}

登录后复制

以上就是Java如何实现鲜花商城系统的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2603032.html

(0)
上一篇 2025年3月6日 19:36:28
下一篇 2025年3月1日 00:08:47

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Java中的SPI机制是什么

    1: SPI机制简介 spi 全称是 service provider interface,是一种 jdk 内置的动态加载实现扩展点的机制,通过 spi 技术我们可以动态获取接口的实现类,不用自己来创建。这个不是什么特别的技术,只是 一种设…

    2025年3月6日
    200
  • Java语言中的医疗健康应用开发介绍

    随着医疗科技的发展和互联网的普及,医疗健康应用越来越受到人们的关注。使用java语言来开发医疗健康应用不仅可以提高开发效率,还可以保证软件的稳定性和安全性。本文将介绍java语言在医疗健康应用开发中的应用。 一、Java语言的优点 Java…

    编程技术 2025年3月6日
    200
  • Java语言应用服务器的搭建方法

    随着互联网的普及和应用开发的需要,java语言应用服务器也逐渐成为了重要的支撑平台之一。它不仅可以提供运行环境,还可以支持多种程序开发语言,如java、php和python等。本文将介绍java语言应用服务器的搭建方法,帮助广大读者快速搭建…

    编程技术 2025年3月6日
    200
  • Java语言中的社交应用开发介绍

    随着社交媒体越来越普及,社交应用也成为了人们生活中不可或缺的一部分。而随着java语言的发展,越来越多的社交应用开始使用java语言来进行开发。那么本文将从java语言的角度出发,向读者介绍java语言中的社交应用开发。 一、 Java语言…

    编程技术 2025年3月6日
    200
  • Java语言中的数据库操作技巧

    java语言中的数据库操作技巧 作为一门广泛应用于企业级开发的语言,Java语言中数据库操作是必不可少的一部分。在Java开发中使用数据库为应用程序提供数据存储和管理,而大量的数据查询和数据操作又需要高效的技巧来操作数据库。本篇文章将介绍一…

    编程技术 2025年3月6日
    200
  • Java API 开发中使用 Camel 进行 ESB 集成

    esb(enterprise service bus)是随着soa(service-oriented architecture)架构的普及而兴起的一种集成方式,它提供了一种解决企业不同系统间通信及传输数据的手段。而camel则是一种用于构建…

    编程技术 2025年3月6日
    200
  • Java API 开发中使用 JNDI 进行数据库连接

    java api 开发中使用 jndi 进行数据库连接 JNDI(Java Naming and Directory Interface)是 Java API 中用于访问命名和目录服务的标准 API。在 Java 开发中,JNDI 被广泛应…

    编程技术 2025年3月6日
    200
  • Java错误:Tomcat错误,如何解决和避免

    java是一种非常流行的编程语言,被广泛用于开发web应用程序。在web开发中,tomcat作为java web服务器也是一款广泛使用的工具。然而,开发过程中难免会遭遇一些错误。这篇文章将着重介绍tomcat错误,并提供解决和避免这些错误的…

    编程技术 2025年3月6日
    200
  • Java实现一个全功能在线医学影像诊断系统的逻辑过程

    近年来,随着医疗技术的不断发展,越来越多的医学影像诊断设备被广泛地应用于医疗现场。在这种情况下,开发一个实用的在线医学影像诊断系统变得至关重要,它不仅可以方便医生进行远程影像诊断,还可以提高诊断准确率和效率。本文将介绍如何使用java实现一…

    编程技术 2025年3月6日
    200
  • java在线网站怎么搭建

    java在线网站搭建方法:1、选择合适的开发工具和环境;2、设计网站架构和创建项目;3、开发网站功能;4、测试和部署网站。 在当今的互联网时代,Java语言是一种全球广泛使用的编程语言。它被广泛用于开发各种类型的应用程序,包括网站。本文将介…

    2025年3月6日
    200

发表回复

登录后才能评论