基于SSM的超市管理系统

news2024/9/23 11:21:35

博主主页:猫头鹰源码

博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战

主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询

文末联系获取

项目介绍: 

本系统采用SSM框架,数据层采用mybatis,数据库使用mysql,适合选题:超市、超市管理、毕设、毕业设计等。

项目功能:

超市管理系统用户共有普通员工和管理员两类用户[15]。
1.普通员工:
(1)进货管理:查看进货信息和退货信息,对退货信息有新增功能。
(2)商品信息管理:查看商品信息和商品分类信息,对商品信息和商品分类信息有新增功能。
(3)销售管理:查看和记录商品销售信息。
(4)库存查询:查看商品库存信息和库存与信息以及临期产品信息。
2.管理员功能:
(1)进货管理:查看进货信息和退货信息,对退货信息有新增功能。
(2)商品信息管理:对商品信息的查看修改和删除等功能。
(3)库存管理:查看商品库存信息和库存预警信息以及临期产品信息,并且库存过少可以有进货权限。
(5)销售管理:查看和记录商品销售信息,可以对有误的商品销售信息做出修改和删除。
(4)供应商信息:根据供应商ID或者供应商姓名进行查询供应商的信息,还可以对供应商信息进行新增、修改以及删除操作。
(6)客户信息管理:管理员可以根据客户ID或者客户姓名进行查询客户信息,还可以对客户信息进行新增、修改以及删除操作。
(7)员工信息管理:管理员可以根据员工ID或者员工姓名进行查询员工的信息,还可以对员工信息进行新增、修改以及删除操作。

系统包含技术:

后端:spring,springmvc,mybatis (ssm整合)
前端:bootstrap、js、css等
开发工具:idea
数据库:mysql 5.7
JDK版本:jdk1.8
服务器:tomcat8
语言:Java语言
是否Maven:是
页面类型:jsp

部分截图说明:

下面是登录

查看进货信息

 

查看库存信息,可以进行筛选

 

临期产品

商品信息

查看销售信息

销售统计

部分代码:

//  跳转到增加页面
	
  @RequestMapping("/toadd")  
  public String toaddCustom(){  
  	return "addcus";

  } 
//  跳转到修改页面
    
    @RequestMapping("/toupdate")  
	public String editProduct(Custom custom,HttpServletRequest request,Model model){
		model.addAttribute("custom", customServiceImp.getByid(custom.getCusid()));
		return "editcus";
	}
//  先判断数据库有没有,有就更新,没有就新增
    
    @RequestMapping("/insert")  
    public String insert(Custom custom,HttpServletRequest request,Model model){  
    	if(null==customServiceImp.getByid(custom.getCusid())) {
    		customServiceImp.insert(custom);    		
    	}else {
    		customServiceImp.update(custom);
    	}
    	return "redirect:getall";

    } 
//    删除
    
    @RequestMapping("/delete")
    public String delete(String cusid) {
    	customServiceImp.delete(cusid);
    	return "redirect:getall";
    }
//    修改
    
    @RequestMapping("/update")
    public String update(Custom custom,HttpServletRequest request,Model model){
    	if(customServiceImp.update(custom)) {
    		custom=customServiceImp.getByid(custom.getCusid());
    		model.addAttribute("custom", custom);
    		return "redirect:getall"; 
    	}
    	return null;
    }
    
//    查询所有
    
    @RequestMapping("/getall")
    public String getall_cus(ModelMap model,
			@RequestParam(defaultValue="1",required=true,value="pn") Integer pn
			) {
		PageHelper.startPage(pn, 4);
		List<Custom> Customs= customServiceImp.getlist();
		PageInfo<Custom> pageInfo=new PageInfo<Custom>(Customs);
		model.addAttribute("pageInfo", pageInfo);
		return "getall_cus";
		
	}
//  查询单个
    
    @RequestMapping("/getbyid")
    public String getbyid(String cusid,HttpServletRequest request,Model model) {
        request.setAttribute("custom", customServiceImp.getByid(cusid));
        model.addAttribute("custom",customServiceImp.getByid(cusid));  
        return "getall"; 
  		
  	}
  //根据条件查询
    @RequestMapping("getbyparams")
    public String getbyparams(@RequestParam(value="cusid",required=false)String cusid,@RequestParam(value="cusname",required=false)String cusname,
  	@RequestParam(defaultValue="1",required=true,value="pn") Integer pn,HttpServletRequest request,Model model
  		) {
  	PageHelper.startPage(pn, 100);
  	List<Custom> customs= customServiceImp.getbyparams(cusid, cusname);
  	PageInfo<Custom> pageInfo=new PageInfo<Custom>(customs);
  	model.addAttribute("pageInfo", pageInfo);
  	return "getcustombyparams";
   
    }

以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。

好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/890846.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一、进入sql环境,以及sql的查询、新建、删除、使用

1、进入sql环境 》》》mysql -u root -p 》》》输入密码 2、sql语言的分类 3、注意事项&#xff1a; 4、基础操作&#xff1a; &#xff08;1&#xff09;查询所有数据库&#xff1a; show databases; 运行结果&#xff1a; &#xff08;2&#xff09;创建一个新的数据库&…

精细化降水预测:探索分钟级降水预报API的应用前景

天气对人们的生活和社会运行有着重要影响&#xff0c;尤其是降水预测在决策和安全方面具有关键作用。随着科技的不断发展&#xff0c;分钟级降水预报 API 正崭露头角&#xff0c;为精细化降水预测带来了前所未有的机会和挑战。分钟级降水预报 API 结合了先进的气象技术和实时数…

小黑账单 图表渲染失败 父子组件的生命周期钩子函数不会同步调用

项目场景&#xff1a; 记账本ECharts图表&#xff0c;Vue组件间传递数据 问题描述 图表组件中 mounted钩子中获取的list总是空的&#xff0c;表单组件亦然 PayEcharts.vue <template><div class"payEcharts"><div class"right"><…

Codeforces Round 893 (Div. 2) D.Trees and Segments

原题链接&#xff1a;Problem - D - Codeforces 题面&#xff1a; 大概意思就是让你在翻转01串不超过k次的情况下&#xff0c;使得a*&#xff08;0的最大连续长度&#xff09;&#xff08;1的最大连续长度&#xff09;最大&#xff08;1<a<n&#xff09;。输出n个数&…

团团代码生成器V1.0:一键生成完整的CRUD功能(提供Gitee源码)

前言&#xff1a;在日常开发的中&#xff0c;经常会需要重复写一些基础的增删改查接口&#xff0c;虽说不难&#xff0c;但是会耗费我们一些时间&#xff0c;所以我自己开发了一套纯SpringBoot实现的代码生成器&#xff0c;可以为我们生成单条数据的增删改查&#xff0c;还可以…

快速使用Linux系统中SSH

在Linux系统中&#xff0c;使用SSH代理跳板机是一种有效的方式&#xff0c;可以实现安全连接和访问远程服务器。本文将详细介绍SSH代理跳板机的设置和使用方法。 什么是SSH代理跳板机&#xff1f; SSH代理跳板机是一种在Linux系统中使用SSH协议实现的代理服务器。通过配置相关…

突破瓶颈,提升学习效率的考试培训系统

在现代社会中&#xff0c;教育和培训已经成为人们提升自我能力的重要途径。尤其在考试备考过程中&#xff0c;学习效率的提升显得尤为重要。为了帮助学习者突破学习瓶颈&#xff0c;提高学习效果&#xff0c;我们开发了一款全新的考试培训系统。 我们的系统为学习者提供了全方…

浅谈时序:set_ouput_delay

1、set_output_delay的本质 set_output_delay是对模块output信号在模块外部延迟的约束&#xff0c;本质上EDA工具会根据约束调整内部器件&#xff08;UFF0&#xff09;的类型&#xff0c;摆放位置以及组合逻辑&#xff08;C1&#xff09;以满足约束要求&#xff0c;即EDA工具保…

硬件系统工程师宝典(37)-----常用接口之EMC特性电路设计

各位同学大家好&#xff0c;欢迎继续做客电子工程学习圈&#xff0c;今天我们继续来讲这本书&#xff0c;硬件系统工程师宝典。上篇我们介绍了一些常用总线&#xff0c;如I2C、SPI、I2S、CAN总线&#xff0c;另外分析了常用的逻辑电平TTL和CMOS以及电平之间互连的方式。今天我们…

shell脚本基础————表达式

目录 一、shell类型 类型 查看系统中支持的shell 查看系统默认shell 二、变量 一、组成 一、变量名 声明规范 声明方法 二、变量值 二、类型 一、系统内置变量&#xff08;环境变量&#xff09; 二、自定义变量 数字 字符串 引号的用法 三、位置变量 四、预定义…

机器学习深度学习——transformer(机器翻译的再实现)

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位即将上大四&#xff0c;正专攻机器学习的保研er &#x1f30c;上期文章&#xff1a;机器学习&&深度学习——自注意力和位置编码&#xff08;数学推导代码实现&#xff09; &#x1f4da;订阅专栏&#xff1a;机器…

【Python程序设计】基于Python Flask的上海美食信息与可视化宣传网站项目-附下载方式以及往届优秀论文,原创项目其他均为抄袭

基于Python Flask的上海美食信息与可视化宣传网站 一、项目简介二、开发环境三、项目技术四、功能结构五、运行截图六、功能实现七、数据库设计八、源码获取 一、项目简介 随着大数据和人工智能技术的迅速发展&#xff0c;我们设计并开发了一款基于大数据的上海美食系统。该系…

python使用matplotlib实现折线图的绘制

一、意义 数据可视化可以以简洁的方式呈现出数据&#xff0c;发现众多数据中隐藏的规律和意义。Matplotlib是一个数学绘图库。利用它可以制作简单的图表&#xff08;散点图、折线图&#xff09;。然后&#xff0c;将基于漫步概念生成一个更有趣的数据集–根据一系列随机决策生成…

Android学习--JNI

文章目录 JNI(Java Native Interface)NDK(Native Development Kit)一、创建一个JNI项目1.创建项目2.C文件字段说明1. Extern “C”2. JNIEXPORTh和JNICALL3. JNI接口命名规则4. JNIEnv5. jclass和jobject6. 数据类型7.JNI函数签名信息 二、JNI实现1.简单实现2.静态注册3.动态注…

Tomcat 一次请求的生命周期

在使用 Tomcat 的时候&#xff0c;我们只需要在 Servlet 实现类中写我们的业务逻辑代码即可&#xff0c;不需要管 Socket 连接、协议处理要怎么实现&#xff0c;因为这部分作为不经常变动的部分&#xff0c;被封装到了 Tomcat 中&#xff0c;程序员只需要引入 Tomcat 中即可&am…

DNNGP、DeepGS 和 DLGWAS模型构成对比

一、DNNGP DNNGP 是基于深度卷积神经网络&#xff0c;这个结构包括一个输入层&#xff0c;三个卷积层&#xff0c;一个批标准化层&#xff0c;两个dropout层&#xff0c;一个平坦化层&#xff0c;一个 dense层。 dropout层&#xff1a;在神经网络中,dropout层是一个非常有效的正…

拿捏--->打印爱心(小心机表白)

文章目录 题目描述算法思路代码示例思路一思路二 题目描述 利用java语言编写算法在控制台打印爱心算法 算法思路代码示例 思路一 打印心形主要分为上下两部分&#xff0c;如图&#xff1a; 下边主要是一个倒立三角形&#xff0c;容易打印。 上边可以分为左右两部分&#…

【数据结构】堆的初始化——如何初始化一个大根堆?

文章目录 源码是如何插入的&#xff1f;扩容向上调整实现大根堆代码&#xff1a; 源码是如何插入的&#xff1f; 扩容 在扩容的时候&#xff0c;如果容量小于64&#xff0c;那就2倍多2的扩容&#xff1b;如果大于64&#xff0c;那就1.5倍扩容。 还会进行溢出的判断&#xff0c…

NPDP含金量高吗?难考吗?

一&#xff0c;什么是NPDP认证&#xff1f; NPDP认证中文名为产品经理国际资格认证&#xff0c;New Product Development Professional (NPDP) &#xff0c;是由美国 产品开发与管理协会 (PDMA) 所发起&#xff0c; 是国际公认的唯一的新产品开发专业认证&#xff0c;集理论、方…

论文及代码详解——可变形卷积(DCNv2)

文章目录 论文详解Stacking More Deformable Conv LayersModulated Deformable ModulesR-CNN Feature Mimicking 代码详解 DCNv2 是在DCNv1的基础上的改进版。 理解DCNv2之前&#xff0c;建议先读 《论文及代码详解——可变形卷积&#xff08;DCNv1&#xff09;》 论文详解 DC…