当前位置: 首页 > news >正文

第八次javaweb作业

我们小组课程设计的题目是:超市管理系统,我认领的模块是:商品信息管理

controller

package com.example.supermarker.controller;import com.example.supermarker.pojo.MerchInfo;
import com.example.supermarker.pojo.PageBean;
import com.example.supermarker.pojo.Result;
import com.example.supermarker.service.SupermarketFenyeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;@Slf4j
@RestControllerpublic class SupermarketFenyeController {@AutowiredSupermarketFenyeService supermarketFenyeService;
//查询所有@GetMapping("/supermarket/{page}/{pageSize}")public Result findAll(@PathVariable  Integer page,@PathVariable  Integer pageSize){log.info("分页查询,参数:{},{}",page,pageSize);PageBean pageBean =  supermarketFenyeService.list(page,pageSize);return Result.seccess(pageBean);}//查询所有+分页@GetMapping("/supermarket1/{page}/{pageSize}")public Result findAll_chaxun(@PathVariable  Integer page,@PathVariable  Integer pageSize, String merchID, String factoryID){log.info("分页查询,参数:{},{},{},{}",page,pageSize,merchID,factoryID);PageBean pageBean =  supermarketFenyeService.list_chaxun(page,pageSize,merchID,factoryID);return Result.seccess(pageBean);}// 删除用户@DeleteMapping("/delete2/{merchID}")public void delete(@PathVariable("merchID") Integer merchID){supermarketFenyeService.delete(merchID);}// 新增用户@PostMapping("/insert")public Result add(@RequestBody MerchInfo merchInfo) {boolean result = supermarketFenyeService.insert(merchInfo);if(result){return Result.success();}else {return Result.erro("添加失败");}}//根据id查找@GetMapping("selectById/{merchID}")public Result selectById(@PathVariable("merchID") Integer merchID){return Result.seccess(supermarketFenyeService.selectById(merchID));}//更新操作@PutMapping("/updateById")public Result update(@RequestBody MerchInfo merchInfo){boolean r = supermarketFenyeService.update(merchInfo);if (r) {// 成功  code==1return Result.success();} else {// 失败  code==0return Result.erro("更新失败");}}}

mapper

package com.example.supermarker.mapper;import com.example.supermarker.pojo.MerchInfo;
import org.apache.ibatis.annotations.*;import java.util.List;@Mapper
public interface SupermarketMapper {//查询所有@Select("select * from merchinfo")public List<MerchInfo> list();@Delete("delete from merchinfo where merchID=#{merchID}")public Integer delete(Integer merchID);@Insert("insert into merchinfo(merchID, merchName, merchPrice, merchNum, factoryID,provideID) values (#{merchID}, #{merchName}, #{merchPrice}, #{merchNum}, #{factoryID},#{provideID})")public Integer insert(MerchInfo merchInfo);@Select("select * from merchinfo where merchID=#{merchID}")public MerchInfo selectById(Integer merchID);@Update("update merchinfo set merchID=#{merchID},merchName=#{merchName},merchPrice=#{merchPrice},merchNum=#{merchNum} ,factoryID=#{factoryID} ,provideID =#{provideID} ")public  boolean update(MerchInfo merchInfo);@Select("SELECT * FROM merchinfo WHERE merchID LIKE CONCAT('%', #{merchID}, '%') and factoryID LIKE CONCAT('%', #{factoryID}, '%')")public List<MerchInfo> list_chaxun(String merchID, String factoryID);

merchinfo

package com.example.supermarker.pojo;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data
@AllArgsConstructor
@NoArgsConstructor
public class MerchInfo {private Integer merchID;private String merchName;private Integer merchPrice;private Integer merchNum;private String factoryID;private String provideID;
}

Result

package com.example.supermarker.pojo;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data
@NoArgsConstructor
@AllArgsConstructor
public class Result {private Integer code;//响应码,1 代表成功; 0 代表失败private String msg;  //响应信息 描述字符串private Object data; //返回的数据public static Result success(){return new Result(1,"success",null);}public static Result seccess(Object data){return new Result(1,"success",data);}public static Result erro(String str){return new Result(1,str,null);}}

pageBean

package com.example.supermarker.pojo;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;import java.util.List;/*** 分页查询结果封装类*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class PageBean {private Long total;//总记录数private List rows;//数据列表}

service

package com.example.supermarker.service;import com.example.supermarker.pojo.MerchInfo;
import com.example.supermarker.pojo.PageBean;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Service;public interface SupermarketFenyeService {public PageBean list(Integer page, Integer pageSize);public PageBean list_chaxun(Integer page, Integer pageSize,String merchID,String factoryID);public Integer delete(Integer merchID);public   boolean  insert(MerchInfo merchInfo);public MerchInfo selectById(Integer merchID);public boolean update(MerchInfo merchInfo);}
package com.example.supermarker.service.impl;import com.example.supermarker.mapper.SupermarketMapper;
import com.example.supermarker.pojo.MerchInfo;
import com.example.supermarker.pojo.PageBean;
import com.example.supermarker.pojo.Result;
import com.example.supermarker.service.SupermarketFenyeService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;// 分页查询
@Service
public class SupermarketService implements SupermarketFenyeService {@Autowiredprivate SupermarketMapper supermarketMapper;@Overridepublic PageBean list(Integer page,Integer pageSize) {//问:PageHelper.startPage(page, pageSize); 请解释一下// 设置分页参数PageHelper.startPage(page, pageSize);// 执行分页查询List<MerchInfo> supermarketList = supermarketMapper.list();// 获取分页结果PageInfo<MerchInfo> p = new PageInfo<>(supermarketList);//封装PageBeanPageBean pageBean = new PageBean(p.getTotal(), p.getList());return pageBean;}@Overridepublic PageBean list_chaxun(Integer page,Integer pageSize,String merchID,String factoryID) {// 设置分页参数PageHelper.startPage(page, pageSize);// 执行分页查询List<MerchInfo> supermarketList = supermarketMapper.list_chaxun(merchID, factoryID);// 获取分页结果PageInfo<MerchInfo> p = new PageInfo<>(supermarketList);//封装PageBeanPageBean pageBean = new PageBean(p.getTotal(), p.getList());return pageBean;}@Overridepublic Integer delete(Integer merchID) {return supermarketMapper.delete(merchID);}@Overridepublic boolean  insert(MerchInfo merchInfo) {int result =  supermarketMapper.insert(merchInfo);return result == 1;}@Overridepublic MerchInfo selectById(Integer merchID) {return supermarketMapper.selectById(merchID);}@Overridepublic boolean update(MerchInfo merchInfo){return supermarketMapper.update(merchInfo);}}

商品信息管理.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>超市管理</title><link rel="stylesheet" href="js/element.css"></head>
<body style="margin: 0">
<div id="app" style="width: 100%;height: 100%"><!--头导航栏--><el-container ><el-header style="height: 60px;width: 100%;margin-top: 0;background-color: #545c64 "><el-menu:default-active="activeIndex"class="el-menu-demo"mode="horizontal"@select="handleSelect"background-color="#545c64"text-color="#fff"active-text-color="#ffd04b"><el-menu-item index="1" style="float: left"><template slot="title">超市管理</template></el-menu-item><el-menu-item index="1" style="float: right">处理中心</el-menu-item><el-submenu index="2" style="float: right"><template slot="title">我的工作台</template><el-menu-item index="2-1">选项1</el-menu-item><el-menu-item index="2-2">选项2</el-menu-item><el-menu-item index="2-3">选项3</el-menu-item><el-submenu index="2-4"><template slot="title">选项4</template><el-menu-item index="2-4-1">选项1</el-menu-item><el-menu-item index="2-4-2">选项2</el-menu-item><el-menu-item index="2-4-3">选项3</el-menu-item></el-submenu></el-submenu><el-menu-item index="3" disabled style="float: right">消息中心</el-menu-item><el-menu-item index="4" style="float: right"><a href="https://www.ele.me" target="_blank">订单管理</a></el-menu-item></el-menu></el-header><!--左导航栏--><el-container style="height: 900px;"><el-aside width="300px" height="900px" style="background-color:#545c64"><el-col  style="height: 100%;width: 300px;color:#545c64"><el-menudefault-active="2"class="el-menu-vertical-demo"@open="handleOpen"@close="handleClose"background-color="#545c64"text-color="#fff"active-text-color="#ffd04b"><el-submenu index="1"><template slot="title"><i class="el-icon-location"></i><span>功能管理</span></template><el-menu-item-group><template slot="title">核心功能</template><el-menu-item index="1-1">商品信息管理</el-menu-item><el-menu-item index="1-2">厂商管理</el-menu-item><el-menu-item index="1-3">供货商管理</el-menu-item><el-menu-item index="1-4">销售管理</el-menu-item></el-menu-item-group></el-submenu><el-submenu index="2"><template slot="title"><i class="el-icon-location"></i><span>统计分析</span></template><el-menu-item-group><template slot="title">图表统计</template><el-menu-item index="2-1">统计分析</el-menu-item></el-menu-item-group></el-submenu></el-menu></el-col></el-aside><!--主表格页面--><el-main height="900px"><!--查询栏--><el-form :inline="true" :model="formInline" class="demo-form-inline" style="font-size: 15px"><el-form-item label="商品编号"><el-input v-model="formInline.bookID" placeholder="商品编号" size="mini"></el-input></el-form-item><el-form-item label="厂商编号"><el-input v-model="formInline.readerID" placeholder="厂商编号" size="mini"></el-input></el-form-item><el-form-item><el-button type="primary" @click="onSubmit" size="mini">查询</el-button></el-form-item><el-form-item><el-button type="success" @click="gotoInsert" size="mini" icon="el-icon-circle-plus-outline">新增</el-button></el-form-item></el-form><!--表格--><el-table:data="tableData.filter(data => !search || data.MerchID.toLowerCase().includes(search.toLowerCase()))"><el-table-column align="center"label="商品编号"prop="merchID"></el-table-column><el-table-column align="center"label="商品名称"prop="merchName"></el-table-column><el-table-column align="center"label="价格"prop="merchPrice"></el-table-column><el-table-column align="center"label="库存数量"prop="merchNum"></el-table-column><el-table-column align="center"label="厂商编号"prop="factoryID"></el-table-column><el-table-column align="center"label="供货商编号"prop="provideID"></el-table-column><el-table-column align="center" label="操作"><template slot-scope="scope"><el-buttonsize="mini"@click="gotoEdit(scope.row.merchID)">Edit</el-button><el-buttonsize="mini"type="danger"@click="deleteById(scope.row.merchID)">Delete</el-button></template></el-table-column></el-table><p align="center"><el-paginationlayout="total, sizes, prev, pager, next, jumper"@size-change="handleSizeChange"@current-change="handleCurrentChange":current-page="currentPage":page-sizes="[2, 3, 4, 10]":page-size="pageSize":total="total"></el-pagination></p></el-main></el-container></el-container>
</div><!-- 引入组件库 -->
<script src="js/jquery.min.js"></script>
<script src="js/vue.js"></script>
<script src="js/element.js"></script>
<script src="js/axios-0.18.0.js"></script><script>new Vue({el: "#app",data: {activeIndex:'1',search: '',currentPage: 1,pageSize: 4,total: null,formInline: {merchID: '',factoryID: '',},tableData: [],formLabelWidth: '120px'},methods: {handleEdit(index, row) {console.log(index, row);},handleDelete(index, row) {console.log(index, row);},handleSizeChange(val) {this.pageSize = val;this.findAll();console.log(`每页 ${val} 条`);},handleCurrentChange(val) {this.currentPage = val;this.findAll();console.log(`当前页: ${val}`);},
//查询所有onSubmit() {var url = `/supermarket1/${this.currentPage}/${this.pageSize}?merchID=${encodeURIComponent(this.formInline.merchID)}&factoryID=${encodeURIComponent(this.formInline.factoryID)}`console.log(this.formInline.merchID);console.log(this.formInline.factoryID);axios.get(url).then(res =>{this.tableData = res.data.data.rows;this.total=res.data.data.total;console.log(this.tableData);console.log(this.total);}).catch(error=>{console.error(error);})},findAll() {var url = `/supermarket/${this.currentPage}/${this.pageSize}`axios.get(url).then(res =>{this.tableData = res.data.data.rows;this.total=res.data.data.total;console.log(this.tableData);console.log(this.total);}).catch(error=>{console.error(error);})},deleteById:function (merchID) {var _this= this;if (window.confirm("确定要删除该条数据吗???")){axios.delete('/delete2/'+merchID).then(function (response) {alert("删除成功")_this.findAll(1);}).catch(function (error) {console.log(error);});}},gotoInsert(){location.href='insert.html';},gotoEdit(merchID){location.href='edit.html';}},created(){this.findAll();}})</script>
</body>
</html>

edit.html


<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script src="js/jquery.min.js"></script><script src="js/vue.js"></script><script src="js/element.js"></script><script src="js/axios-0.18.0.js"></script></head>
<body>
<div id="app"><table border="1"><tr><td>商品编号</td><td><input type="text" v-model="merchinfo.merchID"> </td></tr><tr><td>商品姓名</td><td><input type="text" v-model="merchinfo.merchName"> </td></tr><tr><td>商品价格</td><td><input type="text" v-model="merchinfo.merchPrice"> </td></tr><tr><td>商品数量</td><td><input type="text" v-model="merchinfo.merchNum"> </td></tr><tr><td>厂商编号</td><td><input type="text" v-model="merchinfo.factoryID"> </td></tr><tr><td>供货商编号</td><td><input type="text" v-model="merchinfo.provideID"> </td></tr><tr><td></td><td><input type="primary" @click="updateById" value="更新"> </td></tr></table></div></body>
<script>new Vue({el: '#app',data: {merchID:"",merchinfo:{ }     //详情},methods: {selectById() {var url = `/selectById/${this.merchID}`  //注意这里是反引号//反引号(backticks,也称为模板字符串或模板字面量)是ES6(ECMAScript 2015)中引入的一种新字符串字面量功能,// 它允许您在字符串中嵌入表达式。反引号用`(键盘上通常位于Tab键上方)来界定字符串的开始和结束。axios.get(url).then(response => {var baseResult = response.dataif (baseResult.code == 1) {this.merchinfo=baseResult.data}}).catch(err => {console.error(err);})}},updateById() {var url = `/updateById`axios.put(url, this.merchinfo).then(res => {var baseResult = res.dataif (baseResult.code == 1) {//成功location.href = '商品信息管理.html'} else {//失败alert(baseResult.message)}}).catch(err => {console.error(err);})},created() {// 获得参数id值this.id = location.href.split("?merchID=")[1]// 通过id查询详情this.selectById()},})</script></html>

insert.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><link rel="stylesheet" href="js/element.css"><script src="js/jquery.min.js"></script><script src="js/vue.js"></script><script src="js/element.js"></script><script src="js/axios-0.18.0.js"></script>
</head>
<body>
<div id="app"><table border="1"><tr><td>商品编号</td><td><input type="text" v-model="merchinfo.merchID"> </td></tr><tr><td>商品姓名</td><td><input type="text" v-model="merchinfo.merchName"> </td></tr><tr><td>商品价格</td><td><input type="text" v-model="merchinfo.merchPrice"> </td></tr><tr><td>商品数量</td><td><input type="text" v-model="merchinfo.merchNum"> </td></tr><tr><td>厂商编号</td><td><input type="text" v-model="merchinfo.factoryID"> </td></tr><tr><td>供货商编号</td><td><input type="text" v-model="merchinfo.provideID"> </td></tr><tr><td></td><td><input type="button" @click="insert" value="增加"> </td></tr></table></div>
</body>
<script>new Vue({el: '#app',data: {merchinfo: {"merchID": "","merchName": "","merchPrice": "","merchNum": "","factoryID": "","provideID":""}},methods: {insert() {var url = 'insert'axios.post(url, this.merchinfo).then(res => {var baseResult = res.dataif (baseResult.code == 1) {// 成功location.href = '商品信息管理.html'} else {// 失败alert(baseResult.message)}}).catch(err => {console.error(err);})}},})
</script></html>

相关文章:

第八次javaweb作业

我们小组课程设计的题目是&#xff1a;超市管理系统&#xff0c;我认领的模块是&#xff1a;商品信息管理 controller package com.example.supermarker.controller;import com.example.supermarker.pojo.MerchInfo; import com.example.supermarker.pojo.PageBean; import c…...

js积累四 (读json文件)

function ReadRadioJson() {var url "../radio.json" //json文件url&#xff0c;本地的就写本地的位置&#xff0c;如果是服务器的就写服务器的路径var request new XMLHttpRequest();request.open("get", url, false); //设置请求方法与路径request.sen…...

关于我转生从零开始学C++这件事:升级Lv.25

❀❀❀ 文章由不准备秃的大伟原创 ❀❀❀ ♪♪♪ 若有转载&#xff0c;请联系博主哦~ ♪♪♪ ❤❤❤ 致力学好编程的宝藏博主&#xff0c;代码兴国&#xff01;❤❤❤ OK了老铁们&#xff0c;又是一个周末&#xff0c;大伟又来继续给大家更新我们的C的内容了。那么根据上一篇博…...

mysql中text,longtext,mediumtext区别

文章目录 一.概览二、字节限制不同三、I/O 不同四、行迁移不同 一.概览 在 MySQL 中&#xff0c;text、mediumtext 和 longtext 都是用来存储大量文本数据的数据类型。 TEXT&#xff1a;TEXT 数据类型可以用来存储最大长度为 65,535(2^16-1)个字符的文本数据。如果存储的数据…...

IP协议说明

文章目录 前言一、IP协议的简介二、IP数据报1.IP 数据报结构2.IP 数据报的分片解析3.IP 数据报的分片重装 三、IP 数据报的输出四、IP 数据报的输入 前言 IP 指网际互连协议&#xff0c; Internet Protocol 的缩写&#xff0c;是 TCP/IP 体系中的网络层协议。设计 IP 的目的是…...

第13章 层次式架构设计理论与实践

层次式架构的核心思想是将系统组成为一种层次结构&#xff0c;每一层为上层服务&#xff0c;并作为下层客户。其实不管是分层还是其他的架构都是为了解耦&#xff0c;更好的复用&#xff0c;只要秉承着这种思想去理解一切都迎刃而解了。 13.1 层次上体系结构概述 回顾一下软件…...

FreeRtos进阶——消息队列的操作逻辑

消息队列&#xff08;queue&#xff09; 在不同的任务之间&#xff0c;如果我们需要互相之间通信&#xff0c;使用全局变量进行通信&#xff0c;是一种不安全的通信的方式。为保证线程安全&#xff0c;我们需要引入消息队列的通信方式。 粗暴的消息队列 为保证线程的安全&am…...

WordPress搭建流程

1. 简介 WordPress 是一个 PHP 编写的网站制作平台。WordPress 本身免费,并且拥有众多的主题可以使用,适合用于搭建个人博客、公司官网、独立站等。 2. 环境准备 2.1 WordPress 下载 WordPress 可以在 Worpress中文官网 下载(如果后续要将后台调成中文的话,一定要从中文…...

数据集004:跌倒检测数据集 (含数据集下载链接)

数据集简介&#xff1a; 该数据集为跌倒检测数据集&#xff0c;属于imageclassify任务&#xff0c;分为fall和nofall两大类&#xff0c;累计共1000张图片&#xff0c;均为人工标注 xml格式&#xff0c;可用于yolo训练。 数据集链接&#xff1a;跌倒检测数据集&#xff08;1000…...

苹果与OpenAI合作在即:iOS 18中的ChatGPT引发期待与担忧

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

Android 逆向学习【2】——APK基本结构

APK安装在安卓机器上的&#xff0c;相当于就是windows的exe文件 APK实际上是个压缩包 只要是压缩的东西 .jar也是压缩包 里面是.class(java编译后的一些东西) APK是Android Package的缩写,即Android安装包。而apk文件其实就是一个压缩包&#xff0c;我们可以将apk文件的后…...

你对仲裁裁决不服怎么办?我教你四个狠招!

你对仲裁裁决不服怎么办&#xff1f;我教你四个狠招&#xff01; 这个标题是什么意思呢&#xff1f;也就是说&#xff0c;当你&#xff08;或用人单位&#xff09;向劳动仲裁委提出仲裁申请后&#xff0c;但劳动仲裁结果没有维护你的权益&#xff0c;或者你不满意&#xff0c;…...

绿色智能:低代码开发在AI机器学习中的深度应用与实践案例

随着科技的飞速进步&#xff0c;软件开发的方式也在不断演变。其中&#xff0c;低代码开发作为一种新兴的编程方式&#xff0c;以其高效、便捷的特性受到了广泛关注。同时&#xff0c;AI机器学习技术的发展也为软件开发带来了新的可能。本文将简要介绍低代码开发的概念&#xf…...

《NoSQL数据库技术与应用》 文档存储数据库MongoDB

搜索 《NoSQL数据库技术与应用》 教学设计 课程名称&#xff1a;NoSQL数据库技术与应用 授课年级&#xff1a; 20xx年级 授课学期&#xff1a; 20xx学年第一学期 教师姓名&#xff1a; 某某老师 2020年5月6日 课题 名称 第2章 文档存储数据库MongoDB 计划学时 4 课时 内容 分…...

设置AXI主寄存器切片和AXI数据FIFO

设置AXI主寄存器切片和AXI数据FIFO 打开MHS文件&#xff0c;并为每个AXI主机设置启用寄存器切片/启用数据FIFO。到 确定正确的设置&#xff0c;使用下表中的信息搜索MHS。 进行搜索时&#xff0c;将<intf_name>替换为相关的BUS_INTERFACE名称。 例如&#xff0c;BUS_INTE…...

Golang协程和通道

文章目录 协程&#xff08;goroutine&#xff09;基本介绍GMP模型协程间共享变量 通道&#xff08;channel&#xff09;基本介绍channel的定义方式channel的读写channel的关闭channel的遍历方式只读/只写channelchannel最佳案例select语句 协程&#xff08;goroutine&#xff0…...

Enable Full Line suggestions 启用全行建议

开启后效果如下&#xff1a; 直接提示可能要输入的参数...

Java 文件操作和输入输出流

在 Java 编程中&#xff0c;文件操作和输入输出流是非常常见和重要的任务&#xff0c;它们允许你读取和写入文件、处理数据流等。 文件操作概述 文件操作是指对文件进行创建、读取、写入、删除等操作的过程。在 Java 中&#xff0c;文件操作通常涉及到使用文件对象、输入输出…...

MyBatis中的Where标签:提升你的SQL查询效率

哈喽&#xff0c;大家好&#xff0c;我是木头左&#xff01; 理解MyBatis的Where标签 MyBatis是一款优秀的持久层框架&#xff0c;它提供了许多强大的标签来帮助编写更优雅、高效的SQL语句。其中&#xff0c;<where>标签是使用频率极高的一个&#xff0c;它能够自动处理…...

Docker(三) 容器管理

1 容器管理概述 Docker 的容器管理可以通过 Docker CLI 命令行工具来完成。Docker 提供了丰富的命令&#xff0c;用于管理容器的创建、启动、停止、删除、暂停、恢复等操作。 以下是一些常用的 Docker 容器命令&#xff1a; 1、docker run&#xff1a;用于创建并启动一个容器。…...

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;百货中心供应链管理系统被用户普遍使用&#xff0c;为方…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异&#xff0c;它们的数据同步要求既要保持数据的准确性和一致性&#xff0c;又要处理好性能问题。以下是一些主要的技术要点&#xff1a; 数据结构差异 数据类型差异&#xff…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

【算法训练营Day07】字符串part1

文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接&#xff1a;344. 反转字符串 双指针法&#xff0c;两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

爬虫基础学习day2

# 爬虫设计领域 工商&#xff1a;企查查、天眼查短视频&#xff1a;抖音、快手、西瓜 ---> 飞瓜电商&#xff1a;京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空&#xff1a;抓取所有航空公司价格 ---> 去哪儿自媒体&#xff1a;采集自媒体数据进…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器&#xff0c;可以帮助网站应对分布式拒绝服务攻击&#xff0c;有效识别和清理一些恶意的网络流量&#xff0c;为用户提供安全且稳定的网络环境&#xff0c;那么&#xff0c;高防服务器一般都可以抵御哪些网络攻击呢&#xff1f;下面…...

基于IDIG-GAN的小样本电机轴承故障诊断

目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) ​梯度归一化(Gradient Normalization)​​ (2) ​判别器梯度间隙正则化(Discriminator Gradient Gap Regularization)​​ (3) ​自注意力机制(Self-Attention)​​ 3. 完整损失函数 二…...

在树莓派上添加音频输入设备的几种方法

在树莓派上添加音频输入设备可以通过以下步骤完成&#xff0c;具体方法取决于设备类型&#xff08;如USB麦克风、3.5mm接口麦克风或HDMI音频输入&#xff09;。以下是详细指南&#xff1a; 1. 连接音频输入设备 USB麦克风/声卡&#xff1a;直接插入树莓派的USB接口。3.5mm麦克…...

篇章二 论坛系统——系统设计

目录 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 1. 数据库设计 1.1 数据库名: forum db 1.2 表的设计 1.3 编写SQL 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 通过需求分析获得概念类并结合业务实现过程中的技术需要&#x…...