基于ASP.NET的小型超市商品管理系统
文章目录
- 前言
- 项目介绍
- 技术介绍
- 功能介绍
- 核心代码
- 数据库参考
- 系统效果图
前言
示
文章底部名片,获取项目的完整演示视频,免费解答技术疑问
项目介绍
小型超市商品管理系统是一款针对小型超市日常运营需求设计的软件解决方案。该系统主要内容有商品类别管理、商品库存管理、入库信息管理、销售订单管理等功能,实现了对超市商品的全面管理。它简化了商品管理流程,提高了工作效率,有助于超市管理者实时掌握商品动态,优化库存结构,降低运营成本。
本论文将总体分析小型超市商品需求,再从不同角度分析具体功能需求,运用net相关技术,采用MySQL数据库,讨论如何设计并实现一个小型超市商品管理系统。分析和设计主要从管理员、采购员和销售员三个角色上展开研究,介绍了各个功能模块的实现,并通过系统测试对小型超市商品管理系统进行调试,将各个功能的测试结果与期望设计进行逐一比对,找出BUG和欠缺之处,从而进一步优化改进系统。
本套基于Java的小型超市商品管理系统的设计与实现,希望能让用户通过互联网得到方便而快捷的系统管理体验,在此基础的同时提高工作效益。
技术介绍
开发软件:VS 2017 (版本2017以上即可,不能低于2017)
数据库:SqlServer2008r2(数据库版本无限制,都可以导入)
开发模式:mvc
浏览器:谷歌浏览器
功能介绍
本文从小型超市商品管理的实际需要出发,为降低系统的耦合性,完成了系统总体架构的设计,以提高系统的重用性、可适用性及可维护性。系统包括管理员、采购员和销售员三个角色;
管理员负责对整个系统进行管理和监控,而其他用户则负责执行具体的管理工作。管理员、采购员和销售员
系统整体模块分为管理员、采购员和销售员三大用户角色,整体功能设计图如下所示:

图4-1 系统整体功能图
核心代码
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.StaticFiles;
using Newtonsoft.Json;
using Xiezn.Core.Business.Services;
using Xiezn.Core.Common.Helpers;
using Xiezn.Core.Models.ViewModel;namespace Xiezn.Core.Controllers
{/// <summary>/// 公共接口/// </summary>[Route("[action]")]public class CommonController : Controller{private readonly IHostingEnvironment _hostingEnvironment;private readonly string _savePath;private readonly CommonService _bll;private readonly ConfigService _configBLL;/// <summary>/// 构造函数/// </summary>public CommonController(IHostingEnvironment hostingEnvironment){_hostingEnvironment = hostingEnvironment;_savePath = _hostingEnvironment.WebRootPath + Path.DirectorySeparatorChar + ConfigHelper.GetConfig("SchemaName") + Path.DirectorySeparatorChar + "upload" + Path.DirectorySeparatorChar;_bll = new CommonService();_configBLL = new ConfigService();}/// <summary>/// 获取某表的某个字段列表接口/// </summary>/// <param name="tableName">表名</param>/// <param name="columnName">列名</param>/// <returns></returns>[HttpGet("{tableName}/{columnName}")]public JsonResult Option(string tableName, string columnName){try{int level = Convert.ToInt32(HttpContext.Request.Query["level"]);string parent = HttpContext.Request.Query["parent"];string conditionColumn = HttpContext.Request.Query["conditionColumn"];string conditionValue = HttpContext.Request.Query["conditionValue"];if (!string.IsNullOrEmpty(conditionColumn) && !string.IsNullOrEmpty(conditionValue)){return Json(new { Code = 0, Data = _bll.Common(tableName, columnName, "", 0, "option", 0, 0, " AND " + conditionColumn + " = '" + conditionValue + "' ") });}if (level == 0){return Json(new { Code = 0, Data = _bll.Common(tableName, columnName, parent, level) });}else{return Json(new { Code = 0, Data = _bll.Common(tableName, columnName) });}}catch (Exception ex){return Json(new { Code = 500, Msg = ex.Message });}}/// <summary>/// 根据option字段值获取某表的单行记录接口/// </summary>/// <param name="tableName">表名</param>/// <param name="columnName">列名</param>/// <param name="columnValue">列值</param>/// <returns></returns>[HttpGet("{tableName}/{columnName}")]public JsonResult Follow(string tableName, string columnName, string columnValue){try{return Json(new { Code = 0, Data = _bll.Common(tableName, columnName, columnValue, 0, "follow") });}catch (Exception ex){return Json(new { Code = 500, Msg = ex.Message });}}/// <summary>/// 根据主键id修改table表的sfsh状态接口/// </summary>/// <param name="tableName">表名</param>/// <param name="id">主键id</param>/// <param name="sfsh">当前审核状态(是/否)</param>/// <returns></returns>[HttpPost("{tableName}")][Authorize(Roles = "Admin,Client")]public JsonResult Sh(string tableName, int id, string sfsh){try{if (_bll.Common(tableName, id.ToString(), sfsh, 0, "sh") > 0){return Json(new { Code = 0, Msg = "更新成功!" });}return Json(new { Code = -1, Msg = "更新失败!" });}catch (Exception ex){return Json(new { Code = 500, Msg = ex.Message });}}/// <summary>/// 获取需要提醒的记录数接口/// </summary>/// <param name="tableName">表名</param>/// <param name="columnName">列名</param>/// <param name="type">类型(1表示数字比较提醒,2表示日期比较提醒)</param>/// <param name="remindStart">remindStart小于等于columnName满足条件提醒,当比较日期时,该值表示天数</param>/// <param name="remindEnd">columnName小于等于remindEnd 满足条件提醒,当比较日期时,该值表示天数</param>/// <returns></returns>[HttpGet("{tableName}/{columnName}/{type}")]public JsonResult Remind(string tableName, string columnName, int type, int remindStart, int remindEnd){try{return Json(new { Code = 0, Count = _bll.Common(tableName, columnName, "", type, "remind", remindStart, remindEnd) });}catch (Exception ex){return Json(new { Code = 500, Msg = ex.Message });}}/// <summary>/// 计算规则接口/// </summary>/// <param name="tableName">表名</param>/// <param name="columnName">列名</param>/// <returns></returns>[HttpGet("{tableName}/{columnName}")]public JsonResult Cal(string tableName, string columnName){try{return Json(new { Code = 0, Data = _bll.Common(tableName, columnName, "", 0, "cal") });}catch (Exception ex){return Json(new { Code = 500, Msg = ex.Message });}}/// <summary>/// 人脸比较/// </summary>/// <param name="face1">图片1名称</param>/// <param name="face2">图片2名称</param>/// <returns></returns>[HttpGet]public JsonResult MatchFace(string face1, string face2){try{BaiduAiHelper.clientId = _configBLL.GetValueByName("APIKey");BaiduAiHelper.clientSecret = _configBLL.GetValueByName("SecretKey");BaiduAiHelper.GetAccessToken();List<FaceMatchViewModel> matchInfo = new List<FaceMatchViewModel>{new FaceMatchViewModel { image = FuncHelper.ImageToBase64(_savePath + face1) },new FaceMatchViewModel { image = FuncHelper.ImageToBase64(_savePath + face2) }};string result = BaiduAiHelper.FaceMatch(JsonConvert.SerializeObject(matchInfo));dynamic resObj = JsonConvert.DeserializeObject(result);if (resObj.error_code == 0){return Json(new { Code = 0, Score = resObj.result.score, Msg = "匹配成功!" });}else{return Json(new { Code = -1, Score = 0, Msg = "匹配失败!" });}}catch (Exception ex){return Json(new { Code = 500, Msg = ex.Message });}}/// <summary>/// 定位接口(根据经纬度坐标获取到省市县(区)信息)/// </summary>/// <param name="lat">经度</param>/// <param name="lng">纬度</param>/// <returns></returns>[HttpGet]public JsonResult Location(double lat, double lng){try{AddressViewModel addressViewModel = BaiduAiHelper.GetAddress(_configBLL.GetValueByName("baidu_ditu_ak"), lng, lat);if (addressViewModel == null){return Json(new { Code = -1, Msg = "位置信息获取失败!" });}else{return Json(new { Code = 0, Data = addressViewModel });}}catch (Exception ex){return Json(new { Code = 500, Msg = ex.Message });}}/// <summary>/// 类别统计接口/// </summary>/// <param name="tableName">表名</param>/// <param name="columnName">列名</param>/// <returns></returns>[HttpGet("{tableName}/{columnName}")]public JsonResult Group(string tableName, string columnName){try{return Json(new { Code = 0, Data = _bll.Common(tableName, columnName, "", 0, "group") });}catch (Exception ex){return Json(new { Code = 500, Msg = ex.Message });}}/// <summary>/// 按值统计接口/// </summary>/// <param name="tableName">表名</param>/// <param name="xColumnName">列名</param>/// <param name="yColumnName">列名</param>/// <returns></returns>[HttpGet("{tableName}/{xColumnName}/{yColumnName}")]public JsonResult Value(string tableName, string xColumnName, string yColumnName){try{return Json(new { Code = 0, Data = _bll.Common(tableName, xColumnName, yColumnName, 0, "value") });}catch (Exception ex){return Json(new { Code = 500, Msg = ex.Message });}}/// <summary>/// 按时间统计类型接口/// </summary>/// <param name="tableName">表名</param>/// <param name="xColumnName">列名</param>/// <param name="yColumnName">列名</param>/// <param name="timeStatType">类型</param>/// <returns></returns>[HttpGet("{tableName}/{xColumnName}/{yColumnName}/{timeStatType}")]public JsonResult Value(string tableName, string xColumnName, string yColumnName, string timeStatType){try{return Json(new { Code = 0, Data = _bll.StatDate(tableName, xColumnName, yColumnName, timeStatType) });}catch (Exception ex){return Json(new { Code = 500, Msg = ex.Message });}}/// <summary>/// 数据备份/// </summary>/// <returns></returns>[HttpGet]public IActionResult Mysqldump(){string filepath = _savePath + "mysql.dmp";// Linuxstring cmd = "/bin/bash";string strInput = "/usr/bin/mysqldump -h127.0.0.1 -uroot -P3306 -p123456 net2h303777 > " + filepath;// Windows// string cmd = "cmd.exe";// string strInput = "D:\\mysqldump -h127.0.0.1 -uroot -P3306 -p123456 net2h303777 > " + filepath;Process p = new Process();p.StartInfo.FileName = cmd;p.StartInfo.UseShellExecute = false;p.StartInfo.RedirectStandardInput = true;p.StartInfo.RedirectStandardOutput = true;p.StartInfo.RedirectStandardError = true;p.StartInfo.CreateNoWindow = true;p.Start();p.StandardInput.WriteLine(strInput);p.StandardInput.AutoFlush = true;p.StandardInput.Close();string strOuput = p.StandardOutput.ReadToEnd();p.WaitForExit();p.Close();var stream = System.IO.File.OpenRead(filepath);return File(stream, "application/octet-stream", "mysql.dmp");}/// md5加密接口[HttpGet("{encryption}")]public IActionResult Encrypt(string encryption){try{string text = HttpContext.Request.Query["text"];string data = FuncHelper.MD5(text);return Json(new { Code = 0,Data = data });}catch (Exception ex){return Json(new { Code = 500, Msg = ex.Message });}}}
}
数据库参考
--
-- Current Database: `netm28u50w3`
--/*!40000 DROP DATABASE IF EXISTS `netm28u50w3`*/;CREATE DATABASE /*!32312 IF NOT EXISTS*/ `netm28u50w3` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;USE `netm28u50w3`;--
-- Table structure for table `caigouyuan`
--DROP TABLE IF EXISTS `caigouyuan`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `caigouyuan` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`caigougonghao` varchar(200) DEFAULT NULL COMMENT '采购工号',`caigouxingming` varchar(200) DEFAULT NULL COMMENT '采购姓名',`mima` varchar(200) DEFAULT NULL COMMENT '密码',`xingbie` varchar(200) DEFAULT NULL COMMENT '性别',`zhicheng` varchar(200) DEFAULT NULL COMMENT '职称',`lianxidianhua` varchar(200) DEFAULT NULL COMMENT '联系电话',`touxiang` longtext COMMENT '头像',PRIMARY KEY (`id`),UNIQUE KEY `caigougonghao` (`caigougonghao`)
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8 COMMENT='采购员';
/*!40101 SET character_set_client = @saved_cs_client */;--
-- Dumping data for table `caigouyuan`
--LOCK TABLES `caigouyuan` WRITE;
/*!40000 ALTER TABLE `caigouyuan` DISABLE KEYS */;
INSERT INTO `caigouyuan` VALUES (11,'2024-04-02 10:04:53','采购工号1','采购姓名1','123456','男','职称1','13823888881','upload/caigouyuan_touxiang1.jpg'),(12,'2024-04-02 10:04:53','采购工号2','采购姓名2','123456','男','职称2','13823888882','upload/caigouyuan_touxiang2.jpg'),(13,'2024-04-02 10:04:53','采购工号3','采购姓名3','123456','男','职称3','13823888883','upload/caigouyuan_touxiang3.jpg'),(14,'2024-04-02 10:04:53','采购工号4','采购姓名4','123456','男','职称4','13823888884','upload/caigouyuan_touxiang4.jpg'),(15,'2024-04-02 10:04:53','采购工号5','采购姓名5','123456','男','职称5','13823888885','upload/caigouyuan_touxiang5.jpg'),(16,'2024-04-02 10:04:53','采购工号6','采购姓名6','123456','男','职称6','13823888886','upload/caigouyuan_touxiang6.jpg'),(17,'2024-04-02 10:04:53','采购工号7','采购姓名7','123456','男','职称7','13823888887','upload/caigouyuan_touxiang7.jpg'),(18,'2024-04-02 10:04:53','采购工号8','采购姓名8','123456','男','职称8','13823888888','upload/caigouyuan_touxiang8.jpg');
/*!40000 ALTER TABLE `caigouyuan` ENABLE KEYS */;
UNLOCK TABLES;--
-- Table structure for table `config`
--DROP TABLE IF EXISTS `config`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `config` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`name` varchar(100) NOT NULL COMMENT '配置参数名称',`value` varchar(100) DEFAULT NULL COMMENT '配置参数值',`url` varchar(500) DEFAULT NULL COMMENT 'url',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='配置文件';
/*!40101 SET character_set_client = @saved_cs_client */;--
-- Dumping data for table `config`
--LOCK TABLES `config` WRITE;
/*!40000 ALTER TABLE `config` DISABLE KEYS */;
INSERT INTO `config` VALUES (1,'picture1','upload/picture1.jpg',NULL),(2,'picture2','upload/picture2.jpg',NULL),(3,'picture3','upload/picture3.jpg',NULL);
/*!40000 ALTER TABLE `config` ENABLE KEYS */;
UNLOCK TABLES;--
-- Table structure for table `gongyingshang`
--DROP TABLE IF EXISTS `gongyingshang`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `gongyingshang` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`gongyingshang` varchar(200) NOT NULL COMMENT '供应商',`dizhi` varchar(200) DEFAULT NULL COMMENT '地址',`lianxidianhua` varchar(200) DEFAULT NULL COMMENT '联系电话',`fuzeren` varchar(200) NOT NULL COMMENT '负责人',`zhiwu` varchar(200) DEFAULT NULL COMMENT '职务',`yingyezhizhaohaoma` varchar(200) DEFAULT NULL COMMENT '营业执照号码',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=79 DEFAULT CHARSET=utf8 COMMENT='供应商';
/*!40101 SET character_set_client = @saved_cs_client */;
系统效果图







相关文章:
基于ASP.NET的小型超市商品管理系统
文章目录 前言项目介绍技术介绍功能介绍核心代码数据库参考 系统效果图 前言 示 文章底部名片,获取项目的完整演示视频,免费解答技术疑问 项目介绍 小型超市商品管理系统是一款针对小型超市日常运营需求设计的软件解决方案。该系统主要内容有商品类别…...
spdlog学习记录
spdlog Loggers:是 Spdlog 最基本的组件,负责记录日志消息。在 Spdlog 中,一个 Logger 对象代表着一个日志记录器,应用程序可以使用 Logger 对象记录不同级别的日志消息Sinks:决定了日志消息的输出位置。在 Spdlog 中&…...
linux替换某个文件的某段内容命令
假设文件是a.sql 里面的库是abc,我想把这个abc给替换掉,改成hahaha cat a.sql |grep abc|sed -i s/abc/hahaha/g a.sql 如果想写个脚本指定整个文件夹中的内容替换 #!/bin/bash # 检查是否提供了文件夹路径 if [ -z "\$1" ]; then echo &…...
什么是SQL注入攻击?如何防止呢?
目录 一、什么是SQL注入? 二、如何防止? 2.1 使用预编译语句 2.2 使用 ORM 框架 2.3 用户输入校验 一、什么是SQL注入? SQL 注入是一种常见的网络安全漏洞,攻击者通过在应用程序的用户输入中插入恶意的 SQL 代码ÿ…...
consumer 角度讲一下i2c外设
往期内容 I2C子系统专栏: I2C(IIC)协议讲解-CSDN博客SMBus 协议详解-CSDN博客I2C相关结构体讲解:i2c_adapter、i2c_algorithm、i2c_msg-CSDN博客内核提供的通用I2C设备驱动I2c-dev.c分析:注册篇内核提供的通用I2C设备驱动I2C-dev.…...
面试经典150题刷题记录
数组部分 1. 合并两个有序的子数组 —— 倒序双指针避免覆盖 88. 合并两个有序数组 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使…...
【HarmonyOS NEXT】实现保存base64图片到图库
上篇文章介绍了HarmonyOS NEXT如何保存base64文件到download目录下,本次介绍如何保存base64图片到图库,网络图片保存方式大同小异,先下载图片,然后再保存 phAccessHelper.showAssetsCreationDialog参考官方文档’ ohos.file.pho…...
开题答辩最怕被问什么?教你用ChatGPT轻松准备,稳拿高分!
AIPaperGPT,论文写作神器~ https://www.aipapergpt.com/ 开题答辩是学位论文写作过程中的重要环节,能帮助导师评估你的研究计划是否可行,并对后续写作起到指导作用。很多同学在面对导师提问时会感到紧张,因此提前准备好常见问题的…...
Unity3D功耗和发热分析与优化详解
前言 Unity3D作为广泛使用的游戏开发引擎,在游戏开发过程中,功耗和发热问题一直是开发者需要重点关注的问题。功耗和发热不仅影响用户体验,还可能对设备的硬件寿命造成一定影响。本文将从技术角度详细分析Unity3D游戏在移动设备上的功耗和发…...
深度学习中的掩码介绍
在深度学习中,**掩码(Mask)**通常用于屏蔽掉某些特定部分的数据,以确保模型在训练或推理时不处理无效或无关的输入。掩码的使用场景主要包括处理变长序列、生成模型中的自回归任务、处理填充数据等。掩码可以是二值矩阵(1 表示有效数据,0 表示屏蔽数据),在注意力机制中…...
rust高级进阶总结
文章目录 前言1. Rust生命周期进阶一、不太聪明的生命周期检查(一)例子1(二)例子2 二、无界生命周期三、生命周期约束(HRTB)(一)语法及含义(二)综合例子 四、…...
整理—计算机网络
目录 网络OSI模型和TCP/IP模型 应用层有哪些协议 HTTP报文有哪些部分 HTTP常用的状态码 Http 502和 504 的区别 HTTP层请求的类型有哪些? GET和POST的使用场景,有哪些区别? HTTP的长连接 HTTP默认的端口是什么? HTTP1.1怎…...
分布式数据库环境(HBase分布式数据库)的搭建与配置
分布式数据库环境(HBase分布式数据库)的搭建与配置 1. VMWare安装CentOS7.9.20091.1 下载 CentOS7.9.2009 映像文件1.2启动 VMware WorkstationPro,点击“创建新的虚拟机”1.3在新建虚拟机向导界面选择“典型(推荐)”1…...
100个JavaWeb(JDBC, Servlet, JSP)毕业设计选题
100个JavaWeb(JDBC, Servlet, JSP)毕业设计选题 教育行业 学生信息管理系统在线考试系统课程管理与选课系统教师评价管理系统图书馆管理系统学生成绩查询系统校园论坛作业提交与批改系统学生考勤管理系统教学资源共享平台 企业管理 员工管理系统考勤打卡系统办公用品申请管…...
05 go语言(golang) - 常量和条件语句
常量 在Go语言中,常量是使用 const 关键字定义的,并且一旦被赋值后,它们的值在程序运行期间不能改变。常量可以是字符、字符串、布尔或数值类型。 基本特性 不可修改:一旦一个常量被定义,它的值就不能被更新。编译时…...
【设计模式】深入理解Python中的适配器模式(Adapter Pattern)
深入理解Python中的适配器模式(Adapter Pattern) 在软件开发中,常常会遇到需要让不兼容的类或接口协同工作的问题。适配器模式(Adapter Pattern)是一种结构型设计模式,通过提供一个包装器对象,…...
RuoYi-Vue若依框架-后端设置不登陆访问(白名单)
找到SecurityConfig类 确认自己的需求 /*** anyRequest | 匹配所有请求路径* access | SpringEl表达式结果为true时可以访问* anonymous | 匿名可以访问* denyAll | 用户不能访问* fullyAuthenticated | 用户完全认证可…...
C语言初阶小练习2(三子棋小游戏的实现代码)
这是C语言小游戏三子棋的代码实现 test.c文件是用来测试的部分 game.h文件是用来声明我们说写出的函数 game.c文件是用来编写我们的功能实现函数部分 1.test.c #define _CRT_SECURE_NO_WARNINGS 1 #include"game.h" void menu() {printf("***************…...
金融行业合同管理如何利用AI技术进行风险预警?
2024年以来,金融行业的发展主线被锚定,强调了防风险的基调,尤其是系统性风险的防范。金融工作的重点在于实现六个强大:强大的货币、强大的中央银行、强大的金融机构、强大的国际金融中心、强大的金融监管、强大的金融人才队伍。这…...
世界数字农业盛宴与技术探索,25年3月聚焦世界灌溉科技大会
由中国农业节水和农村供水技术协会、中国农垦节水农业产业技术联盟、北京物联网智能技术应用协会、振威国际会展集团主办的“世界灌溉科技大会”、“第11届北京国际数字农业与灌溉技术博览会”,定于2025年3月31日至4月2日在北京国家会议中心举办。 作为世界三大灌溉…...
shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...
Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...
搭建DNS域名解析服务器(正向解析资源文件)
正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...
ubuntu22.04有线网络无法连接,图标也没了
今天突然无法有线网络无法连接任何设备,并且图标都没了 错误案例 往上一顿搜索,试了很多博客都不行,比如 Ubuntu22.04右上角网络图标消失 最后解决的办法 下载网卡驱动,重新安装 操作步骤 查看自己网卡的型号 lspci | gre…...
