ssm超市管理系统java超市进销存管理系统jsp项目

文章目录

  • 超市进销存管理系统
    • 一、项目演示
    • 二、项目介绍
    • 三、系统部分功能截图
    • 四、七千字项目文档
    • 五、部分代码展示
    • 六、底部获取项目源码和七千字项目文档(9.9¥带走)

超市进销存管理系统

一、项目演示

超市进销存管理系统

二、项目介绍

角色分为管理员、员工

管理员:进货管理,商品信息管理,库存管理,销售管理,客户信息管理,供应商信息管理和员工信息管理功能!

员工:进货管理,商品信息管理,库存管理,销售管理,客户信息管理,供应商信息管理功能

语言:java
技术栈:Spring、Spring MVC、Mybatis、jsp
数据库:MySQL

三、系统部分功能截图

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

四、七千字项目文档

在这里插入图片描述
在这里插入图片描述

五、部分代码展示

package com.hbh.controller;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.ServletRequestDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.hbh.entity.Ckin;
import com.hbh.service.imp.CkinServiceImp;

/**
 * @Author Binvor
 * @Date 2019年3月27日下午3:28:51
 * @Des 进货管理
 */
@Controller
@RequestMapping("/staff/flatform/ckin")
public class CkinController {
	@Autowired
	CkinServiceImp ckinServiceImp;
//	获取所有进货信息
	@RequestMapping("getall")
	public String getlist(ModelMap model,
			@RequestParam(defaultValue="1",required=true,value="pn") Integer pn
			) {
		PageHelper.startPage(pn, 4);
		List<Ckin> ckin= ckinServiceImp.getall();
		PageInfo<Ckin> pageInfo=new PageInfo<Ckin>(ckin);
		model.addAttribute("pageInfo", pageInfo);
		return "getall_ckin";
		
	}
//	根据id查询单个信息
    @RequestMapping("/getckin")  
    public String getbyid(String inid,HttpServletRequest request,Model model){  
        request.setAttribute("ckin", ckinServiceImp.getbyid(inid));
        model.addAttribute("ckin",ckinServiceImp.getbyid(inid));  
        return "getckin";  
    }
//    根据条件查询
   /* @RequestMapping("/getwhere")  
    public String getwhere(String  id,String pname,String  type ,HttpServletRequest request,Model model){  
        request.setAttribute(" duct", ckinServiceImp.getbywhere( id, pname,  type));
        model.addAttribute(" duct",ckinServiceImp.getbywhere( id, pname,  type));  
        return "getlist";  
    }*/
	@RequestMapping("edit")
	public String edit(Ckin ckin,HttpServletRequest request,Model model){
		model.addAttribute("ckin", ckinServiceImp.getbyid(ckin.getInid()));
		return "editckin";
	}	
	@RequestMapping("update")
	public String update(Ckin ckin,HttpServletRequest request,Model model){  
    	if(ckinServiceImp.update(ckin)) {
    		ckin=ckinServiceImp.getbyid(ckin.getInid());
    		model.addAttribute("ckin", ckin);
    		return "redirect:getall"; 
    	}
    	return null;
         
    } 
    @RequestMapping("/delete")  
    public String deletete(String inid,HttpServletRequest request,Model model){  
    	ckinServiceImp.delete(inid);
        return "redirect:getall";  
    } 
//  跳转到增加页面
    @RequestMapping("/toadd")  
  public String toadd (){  
  	return "addckin";

  } 
    
    @RequestMapping("/insert")  
//    先判断数据库有没有,有就更新,没有就新增
    public String insert (Ckin	ckin,HttpServletRequest request,Model model){  
    	if(null==ckinServiceImp.getbyid(ckin.getInid())) {
        	ckinServiceImp.insert(ckin);    		
    	}else {
    		ckinServiceImp.update(ckin);
    	}
    	return "redirect:getall";

    } 

    @InitBinder
    protected void init(HttpServletRequest request, ServletRequestDataBinder binder) {
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        dateFormat.setLenient(false);
        binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false));
    }
    
//	按条件获取所有进货信息
	@RequestMapping("getbyparams")
	public String getbyparams(HttpServletRequest request,Model model,@RequestParam(value="proid",required=false)String proid,
    		@RequestParam(value="inid",required=false)String inid,@RequestParam(value="pname",required=false)String pname,
    		@RequestParam(value="indate",required=false)String indate,@RequestParam(defaultValue="1",required=true,value="pn") Integer pn
    		) {
		PageHelper.startPage(pn, 100);
		List<Ckin> ckin= ckinServiceImp.getbyparams(proid, inid, pname, indate);
		PageInfo<Ckin> pageInfo=new PageInfo<Ckin>(ckin);
		model.addAttribute("pageInfo", pageInfo);
		return "getckinbyparams";
		
	}

}


package com.hbh.controller;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.ServletRequestDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.hbh.entity.Ckin;
import com.hbh.entity.Ckretire;
import com.hbh.service.imp.CkinServiceImp;
import com.hbh.service.imp.CkretireServiceImp;

/**
 * @Author Binvor
 * @Date 2019年3月28日上午9:42:09
 * @Des 
 */
@Controller
@RequestMapping("/staff/flatform/ckretire")
public class CkretireController {
	@Autowired
	CkretireServiceImp ckretireServiceImp;
	
	@Autowired
	CkinServiceImp ckinServiceImp;
	
//	获取所有退货信息
	@RequestMapping("getall")
	public String getlist(ModelMap model,
			@RequestParam(defaultValue="1",required=true,value="pn") Integer pn
			) {
		PageHelper.startPage(pn, 4);
		List<Ckretire> ckretire= ckretireServiceImp.getall();
		PageInfo<Ckretire> pageInfo=new PageInfo<Ckretire>(ckretire);
		model.addAttribute("pageInfo", pageInfo);
		return "getall_ckretire";
		
	}
//	根据id查询单个信息
    @RequestMapping("/getckretire")  
    public String getbyid(String inid,HttpServletRequest request,Model model){  
        request.setAttribute("ckretire", ckretireServiceImp.getbyid(inid));
        model.addAttribute("ckretire",ckretireServiceImp.getbyid(inid));  
        return "getckretire";  
    }
//    根据条件查询
   /* @RequestMapping("/getwhere")  
    public String getwhere(String  id,String pname,String  type ,HttpServletRequest request,Model model){  
        request.setAttribute(" duct", ckretireServiceImp.getbywhere( id, pname,  type));
        model.addAttribute(" duct",ckretireServiceImp.getbywhere( id, pname,  type));  
        return "getlist";  
    }*/
	@RequestMapping("edit")
	public String edit(Ckretire ckretire,HttpServletRequest request,Model model){
		model.addAttribute("ckretire", ckretireServiceImp.getbyid(ckretire.getInid()));
		return "editckretire";
	}	
	@RequestMapping("update")
	public String update(Ckretire ckretire,HttpServletRequest request,Model model){  
    	if(ckretireServiceImp.update(ckretire)) {
    		ckretire=ckretireServiceImp.getbyid(ckretire.getInid());
    		model.addAttribute("ckretire", ckretire);
    		return "redirect:getall"; 
    	}
    	return null;
         
    } 
    @RequestMapping("/delete")  
    public String deletete(String inid,HttpServletRequest request,Model model){  
    	ckretireServiceImp.delete(inid);
        return "redirect:getall";  
    } 
//  跳转到增加页面
    @RequestMapping("/toadd")  
  public String toadd (){  
  	return "addckretire";

  } 
    
    @RequestMapping("/insert")  
//    先判断数据库有没有,有就更新,没有就新增
    public String insert (Ckretire	ckretire,HttpServletRequest request,Model model){  
    	if(null==ckretireServiceImp.getbyid(ckretire.getInid())) {
        	ckretireServiceImp.insert(ckretire);    		
    	}else {
    		ckretireServiceImp.update(ckretire);
    	}
    	return "redirect:getall";

    } 

    @InitBinder
    protected void init(HttpServletRequest request, ServletRequestDataBinder binder) {
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        dateFormat.setLenient(false);
        binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false));
    }
    
//	按条件获取所有进货信息
	@RequestMapping("getbyparams")
	public String getbyparams(HttpServletRequest request,Model model,@RequestParam(value="proid",required=false)String proid,
    		@RequestParam(value="inid",required=false)String inid,@RequestParam(value="pname",required=false)String pname,
    		@RequestParam(value="retdate",required=false)String retdate,@RequestParam(defaultValue="1",required=true,value="pn") Integer pn
    		) {
		PageHelper.startPage(pn, 100);
		List<Ckretire> ckin= ckretireServiceImp.getbyparams(proid, inid, pname, retdate);
		PageInfo<Ckretire> pageInfo=new PageInfo<Ckretire>(ckin);
		model.addAttribute("pageInfo", pageInfo);
		return "getckretirebyparams";
		
	}

//	根据id查询单个信息
    @RequestMapping("/getckret")  
    @ResponseBody
    public Ckin ckretire(String inid,HttpServletRequest request,Model model){  
    	Ckin ckretire=new Ckin();
        ckretire= ckinServiceImp.getbyid(inid);
        return ckretire;  
    }

}

package com.hbh.controller;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.ServletRequestDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.hbh.entity.CusRetire;
import com.hbh.entity.Sale;
import com.hbh.service.imp.CusRetireServiceImp;
import com.hbh.service.imp.SaleServiceImp;

/**
 * @Author Binvor
 * @Date 2019年4月10日下午1:40:47
 * @Des 退货控制器
 */
@Controller
@RequestMapping("/staff/flatform/cusretire")
public class CusRetireController {
	
	@Autowired
	CusRetireServiceImp cusRetireServiceImp;
	
	@Autowired
	SaleServiceImp saleServiceImp;
	
//	获取所有退货信息
	@RequestMapping("getall")
	public String getlist(ModelMap model,
			@RequestParam(defaultValue="1",required=true,value="pn") Integer pn
			) {
		PageHelper.startPage(pn, 4);
		List<CusRetire> CusRetire= cusRetireServiceImp.getall();
		PageInfo<CusRetire> pageInfo=new PageInfo<CusRetire>(CusRetire);
		model.addAttribute("pageInfo", pageInfo);
		return "getall_CusRetire";
		
	}
//	根据id查询单个信息
    @RequestMapping("/getCusRetire")  
    public String getbyid(String saleid,HttpServletRequest request,Model model){  
        request.setAttribute("CusRetire", cusRetireServiceImp.getbyid(saleid));
        model.addAttribute("CusRetire",cusRetireServiceImp.getbyid(saleid));  
        return "getCusRetire";  
    }

	@RequestMapping("edit")
	public String edit(CusRetire CusRetire,HttpServletRequest request,Model model){
		model.addAttribute("CusRetire", cusRetireServiceImp.getbyid(CusRetire.getSaleid()));
		return "editcusretire";
	}	
	@RequestMapping("update")
	public String update(CusRetire CusRetire,HttpServletRequest request,Model model){  
    	if(cusRetireServiceImp.update(CusRetire)) {
    		CusRetire=cusRetireServiceImp.getbyid(CusRetire.getSaleid());
    		model.addAttribute("CusRetire", CusRetire);
    		return "redirect:getall"; 
    	}
    	return null;
         
    } 
    @RequestMapping("/delete")  
    public String deletete(String saleid,HttpServletRequest request,Model model){  
    	cusRetireServiceImp.delete(saleid);
        return "redirect:getall";  
    } 
//  跳转到增加页面
    @RequestMapping("/toadd")  
  public String toadd (){  
  	return "addcusretire";

  } 
    
    @RequestMapping("/insert")  
//    先判断数据库有没有,有就更新,没有就新增
    public String insert (CusRetire	CusRetire,HttpServletRequest request,Model model){  
    	if(null==cusRetireServiceImp.getbyid(CusRetire.getSaleid())) {
    		cusRetireServiceImp.insert(CusRetire);    		
    	}else {
    		cusRetireServiceImp.update(CusRetire);
    	}
    	return "redirect:getall";

    } 

    @InitBinder
    protected void init(HttpServletRequest request, ServletRequestDataBinder binder) {
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        dateFormat.setLenient(false);
        binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false));
    }
    
//	按条件获取所有进货信息
	@RequestMapping("getbyparams")
	public String getbyparams(HttpServletRequest request,Model model,@RequestParam(value="proid",required=false)String proid,
    		@RequestParam(value="saleid",required=false)String saleid,@RequestParam(value="pname",required=false)String pname,
    		@RequestParam(value="retdate",required=false)String retdate,@RequestParam(defaultValue="1",required=true,value="pn") Integer pn
    		) {
		PageHelper.startPage(pn, 100);
		List<CusRetire> ckin= cusRetireServiceImp.getbyparams(proid, saleid, pname, retdate);
		PageInfo<CusRetire> pageInfo=new PageInfo<CusRetire>(ckin);
		model.addAttribute("pageInfo", pageInfo);
		return "getCusRetirebyparams";
		
	}
    @RequestMapping("/getCus") 
    @ResponseBody
    public Sale getCus(String saleid,HttpServletRequest request,Model model){
    	Sale sale=new Sale();
    	sale=saleServiceImp.getbyid(saleid);
        return sale;  
    }



}

package com.hbh.service.imp;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.hbh.dao.CustomMapper;
import com.hbh.dao.KcxxMapper;
import com.hbh.dao.SaleMapper;
import com.hbh.entity.Custom;
import com.hbh.entity.Kcxx;
import com.hbh.entity.Sale;
import com.hbh.service.ISaleService;
@Service
public class SaleServiceImp implements ISaleService {
	@Autowired
	SaleMapper saleMapper;
	@Autowired
	KcxxMapper kcxxMapper;
	@Autowired
	CustomMapper customMapper;
	public int delete(String saleid) {
		return saleMapper.deleteByPrimaryKey(saleid);
	}

	public int insert(Sale record) {
		String id=record.getProid();
		String cusid=record.getCusid();
		String name=record.getCusname();
		Custom custom=new Custom();
		if(customMapper.getbyparams(cusid, name).size()==0) {
			custom.setCusid(cusid);
			custom.setCusname(name);
			if(record.getTotal()>500) {
				int a=customMapper.insert(custom);
				}
			}else {
				customMapper.updateByPrimaryKey(custom);
			}
		Kcxx kcxx=new Kcxx();
		kcxx=kcxxMapper.selectByPrimaryKey(id);
		int kcnum=kcxx.getNum();
		int salenum=record.getNum();
		int nownum=kcnum-salenum-kcnum;
		kcxx.setNum(nownum);
		kcxx.setPname(record.getPname());
		kcxx.setProid(record.getProid());
		kcxx.setMarks(record.getMarks());
		kcxxMapper.updateByPrimaryKey(kcxx);
		return saleMapper.insert(record);
	}

	public List<Sale> getall() {
		// TODO Auto-generated method stub
		return saleMapper.selectByExample(null);
	}

	public Sale getbyid(String saleid) {
		// TODO Auto-generated method stub
		return saleMapper.selectByPrimaryKey(saleid);
	}

	public boolean update(Sale record) {
		// TODO Auto-generated method stub
		return saleMapper.updateByPrimaryKey(record);
	}

	public List<Sale> getbyparams(String proid, String cusid, String pname, String cusname) {
		// TODO Auto-generated method stub
		return saleMapper.getbyparams(proid, cusid, pname, cusname);
	}

	public List<Map<String, Object>> pieData() {
		List<Map<String,Object>> data =new ArrayList<Map<String, Object>>();
        List<Map<String, Object>> listdata=saleMapper.count();
        if(listdata.size()>0){
            for(int i=0;i<listdata.size();i++){
                Map<String,Object> map=new HashMap<String, Object>();
                map.put("name", listdata.get(i).get("pname"));
                map.put("value", listdata.get(i).get("num"));
                data.add(map);
            }
        }
        return data;

	}

}

六、底部获取项目源码和七千字项目文档(9.9¥带走)

有问题,或者需要协助调试运行项目的也可以

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

007、字符串_命令

字符串类型是Redis最基础的数据结构。首先键都是字符串类型&#xff0c;而且 其他几种数据结构都是在字符串类型基础上构建的&#xff0c;所以字符串类型能为其 他四种数据结构的学习奠定基础。 设置值 set key value [ex seconds] [px milliseconds] [nx|xx] 下面操作设置键…

json web token及JWT学习与探索

JSON Web Token&#xff08;缩写 JWT&#xff09;是目前最流行的跨域认证解决方案 作用&#xff1a; 主要是做鉴权用的登录之后存储用户信息 生成得token(令牌)如下 eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwiaWF0IjoxNjg3Njc0NDkyLCJleHAiOjE2ODc3NjA4OTJ9.Y6eFG…

go-zero 实战(1)

环境准备 go 版本 go version go1.22.2 linux/amd64 goctl 安装 goctl&#xff08;官方建议读 go control&#xff09;是 go-zero微服务框架下的代码生成工具。使用 goctl 可以显著提升开发效率&#xff0c;让开发人员将时间重点放在业务开发上&#xff0c;其功能有&#xff1a…

crossover玩游戏缺少文件怎么办 为什么游戏打开说缺失文件 crossover支持的游戏列表 CrossOver 提示 X 11 缺失怎么办?

CrossOver是一款类虚拟机软件&#xff0c;可以实现在Mac电脑上运行exe程序。不少Mac用户为了玩游戏&#xff0c;选择使用CrossOver这款软件玩Windows平台的游戏。 一、CrossOver支持的软件多吗 CrossOver是一款基于Wine的兼容工具&#xff0c;它可以让你在Mac或Linux上运行许多…

废品回收小程序:回收市场下的商业机遇

随着当下大众环保意识的提升&#xff0c;回收行业收到了大众的重视&#xff0c;行业快速发展。在互联网信息技术的支持下&#xff0c;“互联网废品回收”得到了发展&#xff0c;依靠各种技术搭建互联网回收平台&#xff0c;连接到居民与商家&#xff0c;让回收变得更加简单高效…

使用nvm管理node多版本(安装、卸载nvm,配置环境变量,更换npm淘宝镜像)淘宝的镜像域名更换

最近 使用nvm 管理 node 的时候发现nvm install node版本号 总是失败。 nvm install 20.12.2Error retrieving "http://npm.taobao.org/mirrors/node/latest/SHASUMS256.txt": HTTP Status 404查看原因&#xff0c;因为淘宝的镜像域名更换&#xff0c;由于 npm.taob…

【C++算法】BFS解决多源最短路问题相关经典算法题

1.01矩阵 既然本章是BFS解决多源最短路问题&#xff0c;也就是说有若干个起点&#xff0c;那我们就可以暴力一点&#xff0c;直接把多源最短路径问题转化成若干个单源最短路径问题&#xff0c;然后将每次的步数比较一下&#xff0c;取到最短的就是最短路径的结果&#xff0c;这…

10. C++异步IO处理库和使用libevent实现高性能服务器

C比较有名的异步IO处理库 libevent 这个主要使用的是epoll。libevthplibuvlibev 我们主要介绍libevent。 libevent重要函数 event_base_new 这个可以对应于epoll_create也就是创建一个实例。还可以初始化libevent所有管理相关的代码。比如说所能用到的队列&#xff0c;栈&a…

【C++】牛客——活动安排

✨题目链接&#xff1a; AB31 活动安排 ✨题目描述 给定&#x1d45b;个活动&#xff0c;每个活动安排的时间为[&#x1d44e;&#x1d456;,&#x1d44f;&#x1d456;)。求最多可以选择多少个活动&#xff0c;满足选择的活动时间两两之间没有重合。 ✨输入描述: 第一行…

cesium绘制区域编辑

npm 安装也是可以的 #默认安装最新的 yarn add cesium#卸载插件 yarn remove cesium#安装指定版本的 yarn add cesium1.96.0#安装指定版本到测试环境 yarn add cesium1.96.0 -D yarn install turf/turf <template><div id"cesiumContainer"></div&…

4.Redis之Redis的通用命令

0.Redis 实战操作 通过 redis-cli 客户端和 redis 服务器交互 涉及到很多的 redis 的命令 【redis 的命令非常非常多!!! 1.掌握常用命令(多操作多练习) 2.学会使用 redis 的文档-> 阅读文档, 是程序猿的基操!! redis 的命令非常非常多!!! 1.掌握常用命令(多操作多练习…

使用 Django 显示表中的数据

1、问题背景 当我们使用 Django 进行 Web 开发时&#xff0c;经常需要在 Web 页面上显示数据库中的数据。例如&#xff0c;我们可能需要在一个页面上显示所有用户的信息&#xff0c;或者在一个页面上显示所有文章的标题和作者。那么&#xff0c;如何使用 Django 来显示表中的数…

手机里装上好用的实用工具,生活办公更轻松

手机里装上好用的实用工具&#xff0c;生活办公才更轻松&#xff01;~ 1.一个木函 安卓手机里的“工具百宝箱”&#xff0c;应用集成了超过100种实用工具&#xff0c;包括单位和汇率换算、查询、OCR图片文字识别、自动文章摘要、图片表格识别和表情制作等等。它提供了全面的多…

防火墙技术基础篇:NAT转发之——Smart NAT(No-PAT和NAPT结合)

防火墙技术基础篇&#xff1a;NAT转发之——Smart NAT&#xff08;No-PAT和NAPT结合&#xff09; 传统的NAT技术在处理大规模网络和复杂应用场景时存在一定的局限性。为了解决这些问题&#xff0c;一种名为Smart NAT的新型网络技术应运而生。本文将详细介绍Smart NAT的概念、原…

信息标记形式 (XML, JSON, YAML)

文章目录 &#x1f5a5;️介绍&#x1f5a5;️三种形式&#x1f3f7;️XML (Extensible Markup Language)&#x1f516;规范&#x1f516;注释&#x1f516;举例&#x1f516;其他 &#x1f3f7;️JSON (JavaScript Object Notation)&#x1f516;规范&#x1f516;注释&#x…

数据恢复:手机数据恢复,盘点7个有效手机恢复方法

你知道吗&#xff0c;超过 70% 的智能手机用户都曾有过数据丢失的经历&#xff1f;如果你曾经丢失过手机中的重要文件&#xff0c;别担心&#xff0c;本文有解决办法。在本文中&#xff0c;我们将告诉你如何使用简单的步骤恢复手机中丢失的数据。无论你是不小心删除了文件还是手…

java.lang.NumberFormatException: For input string:

创建SpringBoot&#xff0c;Mybatis的项目时候&#xff0c;Service层调用Mapper层时候爆出了一个错误 发现报错是一个类型转换错误&#xff0c;经过排查后发现是因为mapper接收的实体类中没有写空参构造

Python: 使用pyotp实现OTP一次性密码验证

使用pyotp实现OTP一次性密码验证 OTP的基本原理 生成一个共享秘钥作为随机数的种子服务端通过种子计算出当前的密码客户端也通过相同的种子计算出当前的密码验证客户端生成的密码和服务端生成的密码是否匹配 服务端和客户端计算的方式一样 共享密钥 时间因子 算法 > 密…

吴恩达深度学习笔记:超 参 数 调 试 、 Batch 正 则 化 和 程 序 框 架(Hyperparameter tuning)3.8-3.9

目录 第二门课: 改善深层神经网络&#xff1a;超参数调试、正 则 化 以 及 优 化 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)第三周&#xff1a; 超 参 数 调 试 、 Batch 正 则 化 和 程 序 框 架&#xff08;Hyperparameter …

线性插值的频域特性

1、抽取和插值的简单说明 抽取和插值是变采样过程中常用的两种手段&#xff0c;其中抽取的目的是降低数据的采样率&#xff0c;以降低对系统存储深度或计算量的要求。插值的目的是提高数据的采样率&#xff0c;以提高系统的计算精度。 M M M倍抽取通常是通过每隔 M M M…