用MySQL+node+vue做一个学生信息管理系统(五):学生信息增删改的实现

先实现增加信息:
在这里插入图片描述

post参数的获取:express中接受post请求参数需要借助第三方包 body-parser
下载npm install body-parser

//引入body-parser模块
const bodyParser = require('body-parser');
//拦截所有请求,配置body-parser模块
//extended:false 方法内部使用querystring模块处理请求参数的格式,并且把参数保存在req当中
//extended:true 方法内部使用第三方模块qs处理请求参数的格式
app.use(bodyParser.urlencoded({extended:false}));
//接收请求
app.post('/add',(req,res)=>{
	//接收请求参数
	console.log(req.body);
})

req.body可以拿到全部的post请求参数,是一个json对象,以键值对的形式保存,键是input的name,值就是表单输入的内容,接下来只需要获取到值并且保存在MySQL数据库当中就行

在这里插入图片描述

通过结构赋值把需要的值拿到,然后插入到数据库,最后重定向到主页面

//接收请求
app.post('/add',(req,res)=>{
	//接收请求参数
	const { id, name, sex,class1}= req.body;
	var  addSql = 'INSERT INTO student(id,name,sex,class) VALUES(?,?,?,?)';
	var  addSqlParams = [id,name,sex,class1];
	connection.query(addSql,addSqlParams,function (err, result) {
	        if(err){
	         console.log('[INSERT ERROR] - ',err.message);
	         return;
	        }        
	 
	       console.log('--------------------------INSERT----------------------------');
	       //console.log('INSERT ID:',result.insertId);        
	       console.log('INSERT ID:',result);        
	       console.log('-----------------------------------------------------------------\n\n');  
	});
	res.redirect('/index.html');
})

在这里插入图片描述

删除功能的实现:
思路:点击删除按钮的时候创建一个ajax对象,发送请求del,并且携带post学号的参数,post请求参数就是学号,在创建button按钮的时候把学号赋值给button按钮的id属性,点击button按钮时vue的e.target可以获取到触发事件的对象,e.target.id就可以获取到按钮的id属性,删除完之后如果使用node的redirect重定向因为是同一个页面而不会生效,我们需要在html文件中写location.href重定向才行

代码:
init.vue

<template>
	<div id="init">
		<div class="div2">
			<div class="div21">学号</div>
			<div class="div21">姓名</div>
			<div class="div21">性别</div>
			<div class="div21">班级</div>
			<div class="div21"></div>
			<div class="div21"></div>
		</div>
		
		<div class="div3" v-for="item in people">
			<div class="div31">{{item.id}}</div>
			<div class="div31">{{item.name}}</div>
			<div class="div31">{{item.sex}}</div>
			<div class="div31">{{item.class}}</div>
			<div class="div31">
				<router-link to='/update'>更改</router-link>
			</div>
			<div class="div31">
				<button @click="del" :id="item.id">删除</button>
			</div>
		</div>
		<div class="div4">
			<router-link to='/add'>增加</router-link>
		</div>
	</div>
</template>

<script>


export default {
	data(){
		return{
			msg:'66',
			people:[
					
				]
		}
	},
	mounted:function(){
		var xhr = new XMLHttpRequest();
		xhr.open('POST','http://localhost:3000/init');
		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		xhr.send();
		var that = this;
		xhr.onload = function(){
			
			that.people = JSON.parse(xhr.responseText);
		}
	},
	methods:{
		del:function(e){
			console.log('del'+e.target.id);
			var xhr = new XMLHttpRequest();
			xhr.open('POST','http://localhost:3000/del');
			xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
			xhr.send('id='+e.target.id);
			location.href='http://localhost:3000/index.html'
		}
	}
}

	
</script>

<style scoped="scoped">
	
	#init{
		width: 800px;
		margin: auto;
		border: 1px solid transparent;
		
	}
	.div2{
		width: 100%;
		height: 50px;
		display: flex;
		
	}
	.div21{
		text-align: center;
		line-height: 50px;
		border: 1px solid aqua;
		flex: 1;
	}
	.div3{
		width: 100%;
		height: 50px;
		
		display: flex;
	}
	.div31{
		border: 1px solid aqua;
		text-align: center;
		line-height: 50px;
		flex: 1;
	}
	
</style>
const express = require('express');
const app = express();
const path = require('path');
//引入body-parser模块
const bodyParser = require('body-parser');
//拦截所有请求,配置body-parser模块
//extended:false 方法内部使用querystring模块处理请求参数的格式,并且把参数保存在req当中
//extended:true 方法内部使用第三方模块qs处理请求参数的格式
app.use(bodyParser.urlencoded({extended:false}));



//开放静态资源访问,只需要输入文件名即可,不需要输入文件夹
app.use(express.static(path.join(__dirname,'src')));

app.all("*",function(req,res,next){
  //设置允许跨域的域名,*代表允许任意域名跨域
  res.header("Access-Control-Allow-Origin","*");
  //允许的header类型
  res.header("Access-Control-Allow-Headers","Origin,X-Requested-With,Accept,Content-type");
  res.header("Access-Control-Allow-Credentials",true);
  //跨域允许的请求方式
  res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
  res.header("Content-Type","application/json;charset=utf-8")
  if (req.method.toLowerCase() == 'options')
    res.sendStatus(200);  //让options尝试请求快速结束
  else
    next();
});


//引入MySQL模块
var mysql      = require('mysql');
//创建MySQL的连接
var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'root',
  password : '1234',
  database : 'students'
});

//连接MySQL
connection.connect();


//接收请求
app.post('/add',(req,res)=>{
	//接收请求参数
	
	const { id, name, sex,class1}= req.body;
	
	var  addSql = 'INSERT INTO student(id,name,sex,class) VALUES(?,?,?,?)';
	var  addSqlParams = [id,name,sex,class1];
	connection.query(addSql,addSqlParams,function (err, result) {
	        if(err){
	         console.log('[INSERT ERROR] - ',err.message);
	         return;
	        }        
	 
	       console.log('--------------------------INSERT----------------------------');
	       //console.log('INSERT ID:',result.insertId);        
	       console.log('INSERT ID:',result);        
	       console.log('-----------------------------------------------------------------\n\n');  
	});
	res.redirect('/index.html');
})

app.post('/update',(req,res)=>{
	res.send('update');
})

app.post('/del',(req,res)=>{
	const {id}=req.body;
	var delSql = 'DELETE FROM student where id='+id;
	//删
	connection.query(delSql,function (err, result) {
	        if(err){
	          console.log('[DELETE ERROR] - ',err.message);
	          return;
	        }        
	 
	       console.log('--------------------------DELETE----------------------------');
	       console.log('DELETE affectedRows',result.affectedRows);
	       console.log('-----------------------------------------------------------------\n\n');  
	});
})

app.post('/init',(req,res)=>{
	 //query操作可以对数据库进行操作
	connection.query('SELECT * from student', function (err, result, fields) {
			 if(err){
			 //err.message会返回错误的信息
			  console.log('[SELECT ERROR] - ',err.message);
			  return;
			}
		   console.log('--------------------------SELECT----------------------------');
		   console.log(result);
		   res.send(result);
		   console.log('------------------------------------------------------------\n\n');  
	});
	
	
})


app.listen(3000);

修改数据思路:更改替换为<button id=“upd” @click=“upd” :id=“item.id”>更改
当点击更改按钮时,把数据保存在本地,同时也把这个数据发送给后台,在update.vue组件当中提取本地数据,给location.hash=‘/update’赋值,也会造成路由的变化。但是由于路由的组件是一加载完页面就加载了全部的路由,所以保存数据之后update组件当中的数据还是空,所以需要使用location.reload();重新刷新页面读取数据

在这里插入图片描述

在这里插入图片描述
app.js代码

var id = 0;
app.post('/server',(req,res)=>{
	console.log('server');
	id=req.body.id;
	console.log(id);
})

app.post('/update',(req,res)=>{
	console.log('update');
	
	const {name,sex,class1}=req.body;
	var modSql = 'UPDATE student SET name = ?,sex = ?,class = ? WHERE Id = ?';
	var modSqlParams = [name,sex,class1,id];
	//改
	connection.query(modSql,modSqlParams,function (err, result) {
	   if(err){
	         console.log('[UPDATE ERROR] - ',err.message);
	         return;
	   }        
	  console.log('--------------------------UPDATE----------------------------');
	  console.log('UPDATE affectedRows',result.affectedRows);
	  console.log('-----------------------------------------------------------------\n\n');
	});
	
	res.redirect('/index.html');
})

init.vue代码

upd:function(e){
			console.log('upd');
			sessionStorage.setItem('id',e.target.id);
			var xhr = new XMLHttpRequest();
			xhr.open('POST','http://localhost:3000/server');
			xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
			xhr.send('id='+e.target.id);
			location.hash='/update';
			location.reload();
		}

完整代码:
app.js:

const express = require('express');
const app = express();
const path = require('path');
//引入body-parser模块
const bodyParser = require('body-parser');
//拦截所有请求,配置body-parser模块
//extended:false 方法内部使用querystring模块处理请求参数的格式,并且把参数保存在req当中
//extended:true 方法内部使用第三方模块qs处理请求参数的格式
app.use(bodyParser.urlencoded({extended:false}));



//开放静态资源访问,只需要输入文件名即可,不需要输入文件夹
app.use(express.static(path.join(__dirname,'src')));

app.all("*",function(req,res,next){
  //设置允许跨域的域名,*代表允许任意域名跨域
  res.header("Access-Control-Allow-Origin","*");
  //允许的header类型
  res.header("Access-Control-Allow-Headers","Origin,X-Requested-With,Accept,Content-type");
  res.header("Access-Control-Allow-Credentials",true);
  //跨域允许的请求方式
  res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
  res.header("Content-Type","application/json;charset=utf-8")
  if (req.method.toLowerCase() == 'options')
    res.sendStatus(200);  //让options尝试请求快速结束
  else
    next();
});


//引入MySQL模块
var mysql      = require('mysql');
//创建MySQL的连接
var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'root',
  password : '1234',
  database : 'students'
});

//连接MySQL
connection.connect();


//接收请求
app.post('/add',(req,res)=>{
	//接收请求参数
	
	const { id, name, sex,class1}= req.body;
	
	var  addSql = 'INSERT INTO student(id,name,sex,class) VALUES(?,?,?,?)';
	var  addSqlParams = [id,name,sex,class1];
	connection.query(addSql,addSqlParams,function (err, result) {
	        if(err){
	         console.log('[INSERT ERROR] - ',err.message);
	         return;
	        }        
	 
	       console.log('--------------------------INSERT----------------------------');
	       //console.log('INSERT ID:',result.insertId);        
	       console.log('INSERT ID:',result);        
	       console.log('-----------------------------------------------------------------\n\n');  
	});
	res.redirect('/index.html');
})

var id = 0;
app.post('/server',(req,res)=>{
	console.log('server');
	id=req.body.id;
	console.log(id);
})

app.post('/update',(req,res)=>{
	console.log('update');
	
	const {name,sex,class1}=req.body;
	var modSql = 'UPDATE student SET name = ?,sex = ?,class = ? WHERE Id = ?';
	var modSqlParams = [name,sex,class1,id];
	//改
	connection.query(modSql,modSqlParams,function (err, result) {
	   if(err){
	         console.log('[UPDATE ERROR] - ',err.message);
	         return;
	   }        
	  console.log('--------------------------UPDATE----------------------------');
	  console.log('UPDATE affectedRows',result.affectedRows);
	  console.log('-----------------------------------------------------------------\n\n');
	});
	
	res.redirect('/index.html');
})
app.post('/del',(req,res)=>{
	console.log('del');
	const {id}=req.body;
	var delSql = 'DELETE FROM student where id='+id;
	//删
	connection.query(delSql,function (err, result) {
	        if(err){
	          console.log('[DELETE ERROR] - ',err.message);
	          return;
	        }        
	 
	       console.log('--------------------------DELETE----------------------------');
	       console.log('DELETE affectedRows',result.affectedRows);
	       console.log('-----------------------------------------------------------------\n\n');  
	});
})

app.post('/init',(req,res)=>{
	console.log('init');
	 //query操作可以对数据库进行操作
	connection.query('SELECT * from student', function (err, result, fields) {
			 if(err){
			 //err.message会返回错误的信息
			  console.log('[SELECT ERROR] - ',err.message);
			  return;
			}
		   console.log('--------------------------SELECT----------------------------');
		   console.log(result);
		   
		   console.log('------------------------------------------------------------\n\n');
		   res.send(result);
	});

})


app.listen(3000);

index.html:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		
	</head>
	<body>
		
		<div id="app">
			
		</div>
		<script src="./bundle.js" type="text/javascript" charset="utf-8"></script>
	</body>
</html>

app.vue

<template>
	<div id="app">
		<router-view></router-view>
	</div>
</template>

<script>
	
</script>

<style scoped="scoped">
	
</style>

init.vue:

<template>
	<div id="init">
		<div class="div2">
			<div class="div21">学号</div>
			<div class="div21">姓名</div>
			<div class="div21">性别</div>
			<div class="div21">班级</div>
			<div class="div21"></div>
			<div class="div21"></div>
		</div>
		
		<div class="div3" v-for="item in people">
			<div class="div31">{{item.id}}</div>
			<div class="div31">{{item.name}}</div>
			<div class="div31">{{item.sex}}</div>
			<div class="div31">{{item.class}}</div>
			<div class="div31">
				<button id="upd" @click="upd" :id="item.id">更改</button>
			</div>
			<div class="div31">
				<button @click="del" :id="item.id">删除</button>
			</div>
		</div>
		<div class="div4">
			<router-link to='/add'>增加</router-link>
		</div>
		
	</div>
</template>

<script>


export default {
	data(){
		return{
			msg:'66',
			people:[
					
				]
		}
	},
	mounted:function(){
		var xhr = new XMLHttpRequest();
		xhr.open('POST','http://localhost:3000/init');
		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		xhr.send();
		var that = this;
		xhr.onload = function(){
			that.people = JSON.parse(xhr.responseText);
		}
	},
	methods:{
		del:function(e){
			console.log('del'+e.target.id);
			var xhr = new XMLHttpRequest();
			xhr.open('POST','http://localhost:3000/del');
			xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
			xhr.send('id='+e.target.id);
			location.href='http://localhost:3000/index.html'
		},
		upd:function(e){
			console.log('upd');
			sessionStorage.setItem('id',e.target.id);
			var xhr = new XMLHttpRequest();
			xhr.open('POST','http://localhost:3000/server');
			xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
			xhr.send('id='+e.target.id);
			location.hash='/update';
			location.reload();
		}
	}
}

	
</script>

<style scoped="scoped">
	
	#init{
		width: 800px;
		margin: auto;
		border: 1px solid transparent;
		
	}
	.div2{
		width: 100%;
		height: 50px;
		display: flex;
		
	}
	.div21{
		text-align: center;
		line-height: 50px;
		border: 1px solid aqua;
		flex: 1;
	}
	.div3{
		width: 100%;
		height: 50px;
		
		display: flex;
	}
	.div31{
		border: 1px solid aqua;
		text-align: center;
		line-height: 50px;
		flex: 1;
	}
	
</style>

router.js:

import Vue from 'vue'
import Router from 'vue-router/dist/vue-router.js'
import init from '../components/init.vue'
import app from '../components/app.vue'
import add from '../components/add.vue'
import del from '../components/del.vue'
import update from '../components/update.vue'
Vue.use(Router);

export default new Router({
	routes: [
		{
			path: '/',
			redirect:'/init'
		},
		{
			path: '/init',
			component: init
		},
		{
			path: '/add',
			name:'add',
			component: add
		},
		{
			path: '/del',
			name:'del',
			component: del
		},
		{
			path: '/update',
			name:'update',
			component: update
		},
	]
})

update.vue:

<template>
	<div id="update">
		<form action="http://localhost:3000/update" method="post">
			<div class="div1">
				<div class="div11">
					学号
				</div>
				<div class="div12">
					<input type="text" name="id" placeholder="请输入学号" id="num" disabled="disabled">
				</div>
			</div>
			<div class="div1">
				<div class="div11">
					姓名
				</div>
				<div class="div12">
					<input type="text" name="name" placeholder="请输入姓名">
				</div>
			</div>
			<div class="div1">
				<div class="div11">
					性别
				</div>
				<div class="div12">
					<input type="text" name="sex" placeholder="请输入性别">
				</div>
			</div>
			<div class="div1">
				<div class="div11">
					班级
				</div>
				<div class="div12">
					<input type="text" name="class1" placeholder="请输入班级">
				</div>
			</div>
			<br>
			<button type="submit">更改</button>
			
		</form>
	</div>
</template>

<script>

window.onload=function(){
	var k = sessionStorage.getItem('id');
	console.log(k);
	if(k){
		var num = document.querySelector('#num');
		num.value=k;
	}
}

</script>

<style>
	#update{
		width: 60%;
		height: 600px;
		margin: auto;
		border: 1px solid royalblue;
	}
	.div1{
		margin-top: 10px;
		margin-left: 10px;
	}
</style>

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

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

相关文章

TransMIL:基于Transformer的多实例学习

MIL是弱监督分类问题的有力工具。然而&#xff0c;目前的MIL方法通常基于iid假设&#xff0c;忽略了不同实例之间的相关性。为了解决这个问题&#xff0c;作者提出了一个新的框架&#xff0c;称为相关性MIL&#xff0c;并提供了收敛性的证明。基于此框架&#xff0c;还设计了一…

昇思MindSpore学习总结六——函数式自动微分

神经网络的训练主要使用反向传播算法&#xff0c;模型预测值&#xff08;logits&#xff09;与正确标签&#xff08;label&#xff09;送入损失函数&#xff08;loss function&#xff09;获得loss&#xff0c;然后进行反向传播计算&#xff0c;求得梯度&#xff08;gradients&…

怎么使用MarkDown画矩阵

本文首发于公众号“AntDream”&#xff0c;欢迎微信搜索“AntDream”或扫描文章底部二维码关注&#xff0c;和我一起每天进步一点点 今天写文章需要用到矩阵&#xff0c;记录一下 画矩阵需要用到特殊的语法 &#xff08;1&#xff09;画普通矩阵&#xff0c;不带括号的 $$be…

SHA1算法

什么是SHA1算法&#xff08;Secure Hash Algorithm&#xff09; SHA1算法也是一种哈希算法&#xff0c;也称单向散列算法&#xff0c;不可逆&#xff0c;适用于数字签名标准。与MD5大同小异。 算法流程 &#xff08;1&#xff09;明文处理&#xff0c;对明文进行填充&#x…

一文揭秘:CRM如何助力家居建材企业可持续发展?

01、家居建材行业业务高速发展&#xff0c;对数字化转型提出越来越高诉求 家居建材行业是国民经济的重要基础产业&#xff0c;是改善人居条件、治理生态环境和发展循环经济的重要支撑。家居建材是土木工程和建筑工程中使用材料的统称&#xff0c;包括天花板、瓷砖、门、窗、锁…

【Rust基础入门】Hello Cargo

文章目录 前言Cargo是什么&#xff1f;Cargo的作用查看cargo版本使用cargo创建项目Cargo.toml文件cargo build命令cargo runcargo check为发布构建 总结 前言 在Rust编程中&#xff0c;Cargo扮演着至关重要的角色。它是Rust的包管理器&#xff0c;负责处理许多任务&#xff0c…

echarts用pictorialBar实现3D柱状图

先看下效果 实现思路 描绘一个普通的柱状图通过象形柱图&#xff08;pictorialBar&#xff09;在柱状图的顶部添加一个图形类型&#xff08;symbol&#xff09;菱形 代码实现 <template><div id"symbolBar"></div> </template> <scrip…

[数据集][目标检测]金属架螺栓螺丝有无检测数据集VOC+YOLO格式857张3类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;857 标注数量(xml文件个数)&#xff1a;857 标注数量(txt文件个数)&#xff1a;857 标注类别…

代码随想录Day67(图论 part04)

110.字符串接龙 题目&#xff1a;110. 字符串接龙 (kamacoder.com) 思路&#xff1a;没有思路 答案 import java.util.*;public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);int n scanner.nextInt();String beginStr sc…

简单分享 for循环,从基础到高级

1. 基础篇&#xff1a;Hello, For Loop! 想象一下&#xff0c;你想给班上的每位同学发送“Hello!”&#xff0c;怎么办&#xff1f;那就是for循环啦&#xff0c; eg&#xff1a;首先有个名字的列表&#xff0c;for循环取出&#xff0c;分别打印 names ["Alice", …

Firefox 编译指南2024 Windows10篇- 编译Firefox(三)

1.引言 在成功获取了Firefox源码之后&#xff0c;下一步就是将这些源码编译成一个可执行的浏览器。编译是开发流程中的关键环节&#xff0c;通过编译&#xff0c;我们可以将源代码转换为可执行的程序&#xff0c;测试其功能&#xff0c;并进行必要的优化和调试。 对于像Firef…

Datawhale - 角色要素提取竞赛

文章目录 赛题要求一、赛事背景二、赛事任务三、评审规则1.平台说明2.数据说明3.评估指标4.评测及排行 四、作品提交要求五、 运行BaselineStep1&#xff1a;下载相关库Step2&#xff1a;配置导入Step3&#xff1a;模型测试Step4&#xff1a;数据读取Step5&#xff1a;Prompt设…

不要再被骗了!电脑无法进入系统的原因可能是这个硬件坏了而已……

前言 前段时间小白在抖音上发了很多很多很多的视频&#xff0c;其中应该是有很多商家关注了小白。 然后就会出现很多很多很多的赚钱小门道…… 电脑开机没有显示&#xff1f;换显卡&#xff01; 电脑还是不开机&#xff1f;换CPU 电脑还是一样不开机…… 经过了一番大折腾…

电脑录音方法:电脑怎么录音?5招轻松搞定录音!

想要从麦克风或系统音频录制电脑声音吗&#xff1f;这是一项简单的任务。本文将为您介绍5种最佳且最简单的方法&#xff0c;包括使用Windows系统自带的录音工具来录制电脑音频&#xff0c;在线音频录音软件和专业的第三方电脑录音软件。这些工具都能够很好地帮助您完成电脑怎么…

【深度学习】循环神经网络RNN、LSTM、GRU

李宏毅深度学习笔记 https://www.bilibili.com/video/BV1qM4y1M7Nv RNN 在 RNN 里面&#xff0c;每一次隐藏层的神经元产生输出的时候&#xff0c;该输出会被存到记忆元。下一次有输入时&#xff0c;这些神经元不仅会考虑输入 x1, x2&#xff0c;还会考虑存到记忆元里的值。 …

高危行业的安全守护者,顶坚防爆手机无惧挑战

高危行业的安全守护者&#xff0c;防爆手机以卓越性能&#xff0c;无惧极端挑战&#xff0c;为每一位前线工作者筑起坚不可摧的安全防线。石油勘探的深邃海洋、化工生产的复杂车间、矿山的幽深隧道……这些高危行业中&#xff0c;每一步都需谨慎前行&#xff0c;每一刻都需安全…

技术成神之路:设计模式(二)建造者模式

1.定义 建造者模式&#xff08;Builder Pattern&#xff09;是一种创建型设计模式&#xff0c;它允许你分步骤创建复杂对象&#xff0c;而不必直接调用构造函数。建造者模式特别适合那些包含多个组成部分并且构造过程复杂的对象。 2. 结构 建造者模式的主要组成部分包括&#…

TensorRT动态形状(Dynamic Shape)出错,官方demo+自己模型运行时出错

(2024.7.2) 使用TensorRT处理动态输入形状推理时出现的错误&#xff0c;本案基于官方demo文件&#xff0c;已解决&#xff1a; TensorRT版本10.0&#xff0c;官方例子使用的是这个https://github.com/NVIDIA/trt-samples-for-hackathon-cn/blob/master/cookbook/01-SimpleDem…

数据文件传输连接超时?镭速教你如何解决!

Mysql作为一个广泛使用的开源关系型数据库管理系统&#xff0c;以快速、可靠、易于使用、开源的特色闻名&#xff0c;使用 MySQL 来存储和管理数据&#xff0c;已经广泛应用于各个领域、各类大小型应用中。 图片源于网络 使用 MySQL 来存储和管理数据的应用中&#xff0c;与数…

Windows打开redis以及Springboot整合redis

目录 前言Windows系统打开redisSpringboot整合redis依赖实体类yml配置文件config配置各个数据存储类型分别说明记录string数据写入redis&#xff0c;并查询通过命令行查询 list插入数据到redis中从redis中读取命令读取数据 hash向redis中逐个添加map键值对获取key对应的map中所…