IDEA+Java+SSM+Jsp+Mysql实现Web商品信息管理系统(上)

简介: IDEA+Java+SSM+Jsp+Mysql实现Web商品信息管理系统

一、系统介绍


1.开发环境


开发工具:IDEA2018


JDK版本:Jdk1.8


Mysql版本:8.0.13


2.技术选型


Java+SSM+Bootstrap+Jsp+Mysql


3.系统功能


1.登录系统,注册系统。


2.管理员商品信息的增删改查,包含图片上传功能。


图片上传位置:out\artifacts\Commodity_war_exploded\upload


4.数据库文件

/*
 Navicat Premium Data Transfer
 Source Server         : MySQL
 Source Server Type    : MySQL
 Source Server Version : 80013
 Source Host           : 127.0.0.1:3306
 Source Schema         : ssm_commodity
 Target Server Type    : MySQL
 Target Server Version : 80013
 File Encoding         : 65001
 Date: 13/03/2022 23:02:18
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for items
-- ----------------------------
DROP TABLE IF EXISTS `items`;
CREATE TABLE `items`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '商品名称',
  `price` float(10, 1) NOT NULL COMMENT '商品定价',
  `detail` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '商品描述',
  `pic` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品图片',
  `createtime` datetime(0) NOT NULL COMMENT '生产日期',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 22 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of items
-- ----------------------------
INSERT INTO `items` VALUES (19, '辣条', 2.0, '卫龙辣条', '36e2f94e-a707-4021-98e3-fdb071091198.jpg', '2022-03-12 16:00:00');
INSERT INTO `items` VALUES (20, '薯片', 3.0, '乐事薯片', 'c165ca56-6a25-4bb0-b1ab-d51cedfa12d4.jpg', '2022-02-27 16:00:00');
INSERT INTO `items` VALUES (21, '冰红茶', 5.0, '康师傅冰红茶', '91eddeee-809a-4c99-8d9c-a8697024befa.jpg', '2022-03-12 16:00:00');
INSERT INTO `items` VALUES (22, '方便面', 5.0, '康师傅红烧牛肉面', 'd39ea554-7d6c-41b2-8a10-5e55d4ce69f0.jpg', '2022-03-12 16:00:00');
INSERT INTO `items` VALUES (23, '雪糕', 2.0, '乐山雪糕', 'c2a8330d-d481-423f-b3b4-3c3c9b56d5b5.jpg', '2022-03-12 16:00:00');
INSERT INTO `items` VALUES (24, '牛奶', 5.0, '蒙牛牛奶', '6cf59ac5-be74-4fc0-8ea6-892492bc542f.jpg', '2022-03-12 16:00:00');
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户名称',
  `password` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '密码',
  `birthday` date NULL DEFAULT NULL COMMENT '注册日期',
  `sex` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '性别,\"男\"“女”',
  `address` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '地址',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (1, 'admin', 'admin', '2022-03-13', '1', '湖北武汉');
INSERT INTO `user` VALUES (7, 'user', 'user', '2022-12-28', '1', '湖南长沙');
SET FOREIGN_KEY_CHECKS = 1;


5.工程截图

b3aa0889645741a79d03f2654fba9e31.jpg


二、系统展示


1.系统注册


fe48f2dd3f5749f0a5dc92d6a9ce0b97.jpg


2.系统登录


b81935812dfe4af29bc7bc8e0fde788a.jpg


3.系统主页


c11ade654bdb4ad8b364a36c7dd36265.jpg


4.查询商品


f34dcff541d741b38e4dbf1fdf9ba47f.jpg


5.添加商品


22867bb9ef724e24a6b05f2d074c5b45.jpg


6.修改商品


959a258f976a4303bd8d25490b603a2f.jpg


三、部分代码


ItemsController


商品增删改查的逻辑控制层

package com.sjsq.controller;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.UUID;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import com.sjsq.service.ItemsService;
import com.sjsq.entity.Items;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
/**
 *@class_name:ItemsController 
 *@param: 6.controller控制层
 *@return: 实现业务逻辑控制
 *@author:sjsq
 *@createtime:2022年2月22日
 */
@Controller
@RequestMapping("/items")
public class ItemsController {
  @Autowired
  private ItemsService itemsService;
  //分页查询数据
  @RequestMapping("/queryItems")
  public String queryItems(@RequestParam(value="pn",defaultValue="1")Integer pn,Model model){
    //1.引入分页插件,pn是第几页,5是每页显示多少行
    PageHelper.startPage(pn,5);
    //2.紧跟的查询就是一个分页查询
    List<Items>list =itemsService.findAll();
    //3.使用PageInfo包装查询后的结果,5是连续显示的条数
    PageInfo<Items> pageInfo =new PageInfo<Items>(list,5);
    //4.使用model设置到前端
    model.addAttribute("pageInfo",pageInfo);
    model.addAttribute("test","呵呵");
    //5.最后设置返回的jsp
    return "showItems";
  }
  //分页查询数据
  @RequestMapping("/querySomeItems")
  public String querySomeItems(@RequestParam(value="pn",defaultValue="1")Integer pn,@RequestParam(value = "commodityname",required = false) String commodityname, Model model){
    //1.引入分页插件,pn是第几页,5是每页显示多少行
    PageHelper.startPage(pn,5);
        System.out.println(commodityname);
    //2.紧跟的查询就是一个分页查询
    List<Items>list =itemsService.findSome(commodityname);
    //3.使用PageInfo包装查询后的结果,5是连续显示的条数
    PageInfo<Items> pageInfo =new PageInfo<Items>(list,5);
    //4.使用model设置到前端
    model.addAttribute("pageInfo",pageInfo);
    //5.最后设置返回的jsp
    return "showItems";
  }
  // 添加商品
  @RequestMapping("/addItems")
  public String addItems(Items items,MultipartFile items_pic,HttpServletRequest request,HttpServletResponse response) throws IllegalStateException, IOException{
    //设置图片上传的路径
    String path =request.getServletContext().getRealPath("/upload");
    System.out.println("上传路径是:" + path);
    // 获取图片文件名
    String pic_name = items_pic.getOriginalFilename();
    System.out.println("原文件名是:" + pic_name);
    // 为了防止上传同名图片导致覆盖文件,引入随机数UUID解决。
    String newname = UUID.randomUUID().toString() + pic_name.substring(pic_name.lastIndexOf("."));
    System.out.println("新文件名是:" + newname);
    // 创建文件流对象picfile
    File picFile = new File(path, newname);
    System.out.println("文件流为:" + picFile);
    // 如果不存在则创建
    if (!picFile.exists()) {
      picFile.mkdirs();
      }
    items_pic.transferTo(picFile);
    items.setPic(newname);
      // 添加进去
    itemsService.add(items);
      // 内部转发
    return "redirect:queryItems.action";
  }
  //删除商品
  @RequestMapping("/del")
  public String del(int id){
    itemsService.del(id);
    return "redirect:queryItems.action";
  }
  //查询单条记录
  @RequestMapping("/findOne")
  public String findOne(Model model,int id){
    Items items = itemsService.findOne(id);
    model.addAttribute("items", items);
    //返给更新的方法
    return "upd";
  }
  //修改数据
  @RequestMapping("/upd")
  public String upd(Items items,MultipartFile items_pic1,HttpServletRequest request) throws IllegalStateException, IOException{
    //拿到单条数据
    items.setPic(itemsService.findOne(items.getId()).getPic());
    // 拿到该条数据的图片路径和名字
    String path = request.getServletContext().getRealPath("/upload");
    String pic_name = items_pic1.getOriginalFilename();
    //修改以后做新判断
    if (items_pic1 != null && pic_name != null && pic_name.length() > 0) {
      String newname = UUID.randomUUID().toString() + pic_name.substring(pic_name.lastIndexOf("."));
      File picFile = new File(path, newname);
      //文件夹不存在就创建 
      if (!picFile.exists()) {
        picFile.mkdirs();
      }
      items_pic1.transferTo(picFile);
      items.setPic(newname);
    }
    //修改完成以后调用更新方法
    itemsService.upd(items);
    return "redirect:queryItems.action";
  }
}


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
前端开发 JavaScript Java
[Java计算机毕设]基于ssm的OA办公管理系统的设计与实现,附源码+数据库+论文+开题,包安装调试
OA办公管理系统是一款基于Java和SSM框架开发的B/S架构应用,适用于Windows系统。项目包含管理员、项目管理人员和普通用户三种角色,分别负责系统管理、请假审批、图书借阅等日常办公事务。系统使用Vue、HTML、JavaScript、CSS和LayUI构建前端,后端采用SSM框架,数据库为MySQL,共24张表。提供完整演示视频和详细文档截图,支持远程安装调试,确保顺利运行。
578 17
|
存储 Java 关系型数据库
ssm150旅游网站的设计与实现+jsp(文档+源码)_kaic
本旅游网站基于现代经济快节奏发展和信息化技术的升级,采用SSM框架、Java语言及Mysql数据库开发。它实现了景点、新闻、酒店、飞机票和火车票管理等功能,帮助管理者高效处理大量数据信息,提升工作效率。系统界面简洁美观,功能布局合理,同时提供了数据安全解决方案,确保信息的安全性和可靠性。该网站不仅提高了事务处理效率,还实现了数据的整体化、规范化与自动化管理。关键词:旅游网站;SSM框架;Mysql;自动化。
|
存储 Java 关系型数据库
ssm151大学生就业信息管理系统+jsp(文档+源码)_kaic
大学生就业信息管理系统基于现代经济快速发展和信息化技术的升级,旨在通过软件工具提升数据管理效率。该系统利用SSM框架、Java语言和Mysql数据库开发,实现数据的科学化、规范化与自动化管理。系统界面简洁美观,功能模块布局合理,提供高效的数据处理能力,并注重数据安全。通过此系统,管理者能够快速处理大量信息,提高工作效率,同时确保数据的安全性和可靠性。关键词:大学生就业信息管理系统;SSM框架;Mysql;自动化。
|
存储 Java 关系型数据库
ssm152家庭财务管理系统设计与实现+jsp(文档+源码)_kaic
本家庭财务管理系统基于现代经济快速发展和信息化技术升级的背景,采用SSM框架、Java语言及Mysql数据库开发。系统旨在帮助用户高效处理大量数据信息,提升财务管理效率,实现数据的整体化、规范化与自动化管理。该系统界面简洁美观,功能布局合理,具备良好的易用性和扩展性,并提供多种安全措施保障数据安全。通过科学化的管理方式,有效减少人工操作失误,提高工作效率。
|
Java 关系型数据库 MySQL
ssm027学校运动会信息管理系统(文档+源码)_kaic
本文介绍了基于B/S结构的学校运动会信息管理系统开发过程。该系统采用JSP技术和MySQL数据库,确保了系统的安全性和稳定性。系统界面友好、操作简便,涵盖系统概述、分析、设计、数据库设计和测试等环节,实现了学校运动会信息管理的重要功能。经过测试,系统运行稳定,操作便捷,具备全面的功能、良好的可扩展性和维护性,有效提升了运动会信息管理的效率和准确性。关键词:学校运动会信息管理;B/S结构;JSP技术;MYSQL数据库。
|
Java 应用服务中间件 Maven
idea+maven+tomcat+spring 创建一个jsp项目
这篇文章介绍了如何在IntelliJ IDEA中使用Maven和Tomcat创建一个JSP项目,包括配置Maven依赖、设置Tomcat服务器、编写JSP页面、创建控制器和配置文件,以及项目的运行结果。
1287 0
idea+maven+tomcat+spring 创建一个jsp项目
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
1162 38
|
前端开发 Java 数据库连接
【Java笔记+踩坑】SSM整合
统一结果封装、统一异常处理、整合图书案例、拦截器
【Java笔记+踩坑】SSM整合
|
11月前
|
关系型数据库 MySQL 分布式数据库
阿里云PolarDB云原生数据库收费价格:MySQL和PostgreSQL详细介绍
阿里云PolarDB兼容MySQL、PostgreSQL及Oracle语法,支持集中式与分布式架构。标准版2核4G年费1116元起,企业版最高性能达4核16G,支持HTAP与多级高可用,广泛应用于金融、政务、互联网等领域,TCO成本降低50%。