【update 更新数据语法合集】.NET开源ORM框架 SqlSugar 系列
系列文章目录
🎀🎀🎀 .NET开源 ORM 框架 SqlSugar 系列 🎀🎀🎀
文章目录
- 系列文章目录
- 前言 🍃
- 一、实体对象更新
- 1.1 单条与批量
- 1.2 不更新某列
- 1.3 只更新某列
- 1.4 NULL列不更新
- 1.5 无主键/指定列
- 1.6 更新添加条件
- 1.7 大数据更新
- 1.8 重新赋值1:list中的值修改
- 1.9 重新赋值2: 列中的值+1
- 二、根据表达式更新(像SQL)
- 2.1 指定多个字段更新
- 2.2 一个字段更新
- 2.3 字段+1更新
- 2.4 Set语法是支持多个的
- 2.5 批量更新IN
- 2.6 表达式无实体更新
- 2.7 表达式分页更新
- 三、根据字典更新
- 四、根据DataTable更新
- 五、匿名、Object、接口更新
- 六、更多功能
- 6.1 更新主键
- 6.2 联表更新
- 6.3 调用实体内方法
- 6.4 高性能更新
- 6.5 导航更新
- 6.6 默认值(系统时间)
- 🎀🎀🎀 .NET开源 ORM 框架 SqlSugar 系列 🎀🎀🎀
前言 🍃
前面的章节介绍了各种 SqlSugar
各种场景的 查询 操作,接下来将介绍 SqlSugar
增、删、改 相关操作。数据库 插入 数据的方法包括:使用 SQL
插入语句、通过 ORM
框架、使用 批量插入 技术、利用 存储过程。
一、实体对象更新
所谓按实体对象更新就是:db.Updateable
(参数对象) 有参数的重载。
db.Updateable(实体或者集合).ExecuteCommand()
1.1 单条与批量
根据实体更新需要给实体配置主键,参考文档实体配置:
函数 | 说明 |
---|---|
ExecuteCommand | 返回受影响行数 , update where 如果没找到那么就会返回 0 |
ExecuteCommandHasChange | 返回bool ,等同于 bool isChange= ExecuteCommand()>0 |
//根据主键更新单条 参数 Class
var result= db.Updateable(updateObj).ExecuteCommand();//实体有多少列更新多少列//批量更新参数 List<Class>
var result= db.Updateable(updateObjs).ExecuteCommand();
//分页更新 5.1.4.129+ 低版本 存在 UpateColumns设置无效
db.Updateable(List<实体>).PageSize(1000).ExecuteCommand() var updateObj=new Class(){Id=1 }; //主键要有值
//只更新修改字段 (5.1.4.59支持了批量)
db.Tracking(updateObj);//创建跟踪
updateObj.Name = "a1" + Guid.NewGuid();//只改修改了name那么只会更新name
db.Updateable(updateObj).ExecuteCommand();//因为每条记录的列数不一样,批量数据多性能差,不建议用
//可以清空
db.ClearTracking();//5.1.4.108-preview30+//大数据批量更新 适合列多数据多的更新
db.Fastest<RealmAuctionDatum>().BulkUpdate(GetList());//联表更新看标题6.2
1.2 不更新某列
🌰不更新 TestId
和 CreateTime
var result=db.Updateable(updateObj).IgnoreColumns(it => new { it.CreateTime,it.TestId }).ExecuteCommand()//也可以用特性
[SugarColumn(IsOnlyIgnoreUpdate=true)]
public DateTime UpdateDate{get;set;}
1.3 只更新某列
🌰只更新 Name
和 CreateTime
var result=db.Updateable(updateObj).UpdateColumns(it => new { it.Name,it.CreateTime }).ExecuteCommand();
🎯注意:5.1.4.62 版本支持了多个
UpdateColumn
叠加,之前版本不支持。
🌰 追加AOP赋值列 5.1.4.106-preview19+
//例如:AOP修改 Price那么更新的列就是 Price Name Creatime 加了true就追加了一列
var result=db.Updateable(updateObj)
.UpdateColumns(it => new { it.Name,it.CreateTime },true)//true表示追加AOP赋值列
.ExecuteCommand();
1.4 NULL列不更新
🎯注意:高版本支持批量 ,用该方法批量性能差些,因为列不同所以没必然用批量语法。
//更新忽略null字段
db.Updateable(data).IgnoreColumns(ignoreAllNullColumns:true).ExecuteCommand();//更新忽略null并且忽略默认值 (比如int默认值是0就不更新)
db.Updateable(data).IgnoreColumns(ignoreAllNullColumns:true,ignoreAllDefaultValue:true).ExecuteCommand();
1.5 无主键/指定列
🆚用法同上唯一区别就是用 WhereColumns
指定条件:
var result= db.Updateable(updateObj).WhereColumns(it=>new { it.Id}).ExecuteCommand();//更新单 条根据ID
var result= db.Updateable(updateObjs).WhereColumns(it=>new { it.Id}).ExecuteCommand();//更新集合根据ID by id
可以多列:
WhereColumns(it=>new { it.Id,it.Name}) //条件列不会被更新,只会作为条件
1.6 更新添加条件
🎯注意:单条操作都支持 ,批量只支持部分库,多库考虑批量操作不建议用这个方法。
db.Updateable(updateObj).Where(it=>it.Id==1).ExecuteCommand()
//如果是集合操作请更新到5.0.4版本之前版本禁止使用, 并且只有部分库支持
1.7 大数据更新
👑大数据更新,适合大数据更新,可以处理百万级, 5.0.4.5+
//大数据更新,适合大数据更新,可以处理百万级
db.Fastest<RealmAuctionDatum>().BulkUpdate(GetList());//特色功能:吊打所有框架N倍,30列100万8秒更新完
1.8 重新赋值1:list中的值修改
//单个字段db.Updateable(updateObj).ReSetValue(it=> { it.Name = it.Name+"a";})//updateObj.Name值的基础上在处理.ExecuteCommand()//多个字段 db.Updateable(updateObj).ReSetValue(it=> { it.Name = it.Name+"a";it.CreateTime = DateTime.Now;}) .ExecuteCommand()
🎯注意:该功能是在
UpdateObj
参数上修改,如果是在数据库字段+1 看1.9和2.3
1.9 重新赋值2: 列中的值+1
- SET=字段+固定变量 SqlSugarCore 5.1.4.72 +
var result67 =db.Updateable(updateObjs)//批量更新单独处理num列 set num=num+1.PublicSetColumns(it => it.Num, it => it.Num+ 1).ExecuteCommand();//该功能默认是更新整个LIST,如果只更新一个字段需要加UpdateColumn指定一下 //2.3也有该功能不过是针对表达式方式更新,不是通过实体方式
🎯注意:该功能默认是更新整个LIST,如果只更新一个字段需要加
UpdateColumn
指定一下。
- SET=字段+集合变量 SqlSugarCore 5.1.4.77 preview02 +
db.Updateable(list).PublicSetColumns(it => it.Price, "+") //set price=price+list[i].price.ExecuteCommand();//MYSQL如果用到float表要设置精度//该功能默认是更新整个LIST,如果只更新一个字段需要加UpdateColumn指定一下
🎯注意:该功能默认是更新整个LIST,如果只更新一个字段需要加
UpdateColumn
指定一下。
二、根据表达式更新(像SQL)
🗒️表达式更新比较像SQL而不是对象。
var result=db.Updateable<Student>().SetColumns(it => new Student() { Price=it.Price+1,CreateTime=DateTime.Now}) .Where(it => it.Id >11).ExecuteCommand();
//是不是很像SQL
2.1 指定多个字段更新
🌰更新 name, createtime 条件 id=11
var result= db.Updateable<Student>()
.SetColumns(it => new Student() { Name="a",CreateTime=DateTime.Now})//类只能在表达示里面不能提取
.Where(it => it.Id == 11)
.ExecuteCommand();
//表达式写2列更新2列,其他不会更新
2.2 一个字段更新
🌰只更新 name 条件 id=1
var result= db.Updateable<Student>()
.SetColumns(it => it.Name == "jack")//SetColumns是可以叠加的 写2个就2个字段赋值
.Where(it => it.Id == 1)
.ExecuteCommand();// Sql
// Update Student set Name='jack' where id=1 //如果需要获取数据库时间我们可以用 SqlFunc.GetDate()
🎯注意:如果需要获取数据库时间我们可以用 SqlFunc.GetDate()
2.3 字段+1更新
//实现在原有字段+1
var result= db.Updateable<Student>()
.SetColumns(it => it.Num == it.Num+1)
.Where(it => it.Id == 1)
.ExecuteCommand();
// update Studentset iNum=iNum+1 where id=1
2.4 Set语法是支持多个的
var result71 = db.Updateable<Order>()//生成 [name]=name.SetColumns(it => it.Name == it.Name)//加一个必须更新条件防止SETIF没有列//第一条件为true 生成 createtime=变量 .SetColumnsIF(p!=null ,it => it.CreateTime == p.Value)//第一条件为true 生成 X=变量 .SetColumnsIF(X!=null ,it => it.X== X).Where(it => it.Id == 11).ExecuteCommand();
2.5 批量更新IN
var ids=new int[]{1,2,3};
var result71 = db.Updateable<Order>().SetColumns(it => it.Name == "a").Where(it => ids.Contains(it.Id)).ExecuteCommand();// in (1,2,3)
2.6 表达式无实体更新
db.Updateable<object>().AS("Order").SetColumns("name", 1).Where("id=1").ExecuteCommand();//SQL://UPDATE [Order] SET// [Name]=@Const0 WHERE id=1//新功能 5.1.4.143+
db.Updateable<object>()//需要升到5.1.4.143.AS("UserInfo001").SetColumns(it=>SqlFunc.MappingColumn<string>("price"),it=>SqlFunc.MappingColumn<string>("price+1")).Where("price=1").ExecuteCommand();//UPDATE [UserInfo001] SET// [price]=price+1 WHERE price=1
2.7 表达式分页更新
var q=db.Queryable<Order>().Take(10).Skip(10).OrderByDescending(it => it.CreateTime) .Select(it => it.Id);//只能是Select单个字段db.Updateable<Order>().SetColumns(it => new Order(){CreateTime = DateTime.Now}).In(it => it.Id,q).ExecuteCommand();
三、根据字典更新
//设置字典
var dt = new Dictionary<string, object>();dt.Add("id", 1);dt.Add("name", null);dt.Add("createTime", DateTime.Now);
var t66 = db.Updateable(dt).AS("student").WhereColumns("id").ExecuteCommand();//字典集合
var dtList = new List<Dictionary<string, object>>();
dtList.Add(dt);
dtList.Add(dt2);
var t666 = db.Updateable(dtList).AS("student").WhereColumns("id").ExecuteCommand();
四、根据DataTable更新
将 datatable
转成字典集合插入
List<Dictionary<string,object>> dc= db.Utilities.DataTableToDictionaryList(dataTable);//转成字典
var t666 = db.Updateable(dc).AS("student").WhereColumns("id").ExecuteCommand();
五、匿名、Object、接口更新
匿名对象:https://www.donet5.com/Home/Doc?typeId=2423
Object、接口和抽象类:
//这个object必须真实类对象,比如反射的Object 或者接口接收的类对象
db.UpdateableByObject(object).ExecuteCommand();//更多功能 :动态建类等
https://www.donet5.com/Home/Doc?typeId=2562
六、更多功能
6.1 更新主键
🎯注意:ORM
默认不支持修改主键,这种需求有2种方案:
-
删除当前记录,然后在添加一条新记录(因为主键都可以更新,说明没有外部引用,可以直接删掉在加)
-
新建一个没有主键的实体,指定表名用
Wherecolumns
更新
6.2 联表更新
//多库兼容
var t17 = db.Updateable<Student>().SetColumns(it =>new Student(){ SchoolId=SqlFunc.Subqueryable<School>().Where(s=>s.Id ==it.SchoolId).Select(s=>s.Id), Name = "newname" }).ExecuteCommand();//也可以在Where加条件//.Where(it => SqlFunc.Subqueryable<School>().Where(s => s.Id == it.SchoolId).Any())//优雅写法:MySql PgSql SqlServer Oracle 达梦、金仓
//其中Oracle和达梦只支持2表 var t= db.Updateable<Order>().InnerJoin<Custom>((x, y) => x.CustomId == y.Id).SetColumns((x, y) => new Order() { Name = y.Name, Price = y.Id }).Where((x, y) => x.Id == 1).ExecuteCommand();
🤖生成 sql
:
UPDATE [STudent] SET
[SchoolId] = (SELECT TOP 1 [Id] FROM [School] WHERE ( [Id] =[STudent].[SchoolId] )) ,
[Name] = @Const0
WHERE ( [ID] = @Id1 )
6.3 调用实体内方法
db.Insertable(new UnitInsertMethod() { ...... }).CallEntityMethod(it=>it.Create()).ExecuteCommand();db.Updateable(new UnitInsertMethod() { ..... }).CallEntityMethod(it => it.modify("admint")).ExecuteCommand();//实体
public class UnitInsertMethod
{[SqlSugar.SugarColumn(IsPrimaryKey = true, IsIdentity = true)]public int Id { get; set; }public string Name { get; set; }public DateTime Time { get; set; }[SqlSugar.SugarColumn(IsNullable =true)]public string UserId { get; set; }public void Create(){this.Time = DateTime.Now;this.UserId = "1";}public void modify(string a){this.Time = DateTime.Now;this.UserId = a;}
}
6.4 高性能更新
适合超大数据更新
db.Fastest<RealmAuctionDatum>().BulkUpdate(GetList());//更新 吊打所有框架N倍,30列100万8秒更新完
6.5 导航更新
https://www.donet5.com/Home/Doc?typeId=2432
6.6 默认值(系统时间)
方式1 (5.1.3.42-preview01):通过特性指定默认值
//更新取数据库当前时间 支持多库//UpdateServerTime =true 更新的时候取服务器时间//IsOnlyIgnoreInsert =true 插入的时候不插入该列(可用可不用根据需求来)[SugarColumn(UpdateServerTime =true,IsOnlyIgnoreInsert =true)]// getdate() now() sysdatepublic DateTime UpdateTime { get; set; }//更新根据SQL进行插入 [SugarColumn(UpdateSql = "getdate()")] //生成 getdate()public DateTime UpdateTime2 { get; set; }[SugarColumn(UpdateSql = "''")] // 生成 ''public string Str { get; set; }[SugarColumn(UpdateSql = "0")]// 生成 0public string Str { get; set; }[SugarColumn(UpdateSql = "num+1")]// 生成 num+1public string num { get; set; }
🎯注意:
- 表达更新:SetColumns(it=>new class{ name=it.name},true) 如果用到
SetColumn
需要加个true。 - 实体更新:无需任何操作。
- 方式2:通过
AOP
实现,文档搜索:AOP , 看标题2。 - 注意:方式1和方式2不要冲突了。
🎀🎀🎀 .NET开源 ORM 框架 SqlSugar 系列 🎀🎀🎀
【开篇】.NET开源 ORM 框架 SqlSugar 系列
【入门必看】.NET开源 ORM 框架 SqlSugar 系列
【实体配置】.NET开源 ORM 框架 SqlSugar 系列
【Db First】.NET开源 ORM 框架 SqlSugar 系列
【Code First】.NET开源 ORM 框架 SqlSugar 系列
【数据事务】.NET开源 ORM 框架 SqlSugar 系列
【连接池】.NET开源 ORM 框架 SqlSugar 系列
【查询目录】.NET开源 ORM 框架 SqlSugar 系列
【查询基础】.NET开源 ORM 框架 SqlSugar 系列
【排序用法】.NET开源 ORM 框架 SqlSugar 系列
【分组去重】.NET开源 ORM 框架 SqlSugar 系列
【联表查询】.NET开源 ORM 框架 SqlSugar 系列
【导航查询】.NET开源 ORM 框架 SqlSugar 系列
【子查询】.NET开源 ORM 框架 SqlSugar 系列
【嵌套查询】.NET开源 ORM 框架 SqlSugar 系列
【配置查询】.NET开源 ORM 框架 SqlSugar 系列
【并集查询】.NET开源 ORM 框架 SqlSugar 系列
【树型查询】.NET开源 ORM 框架 SqlSugar 系列
【表格查询】.NET开源 ORM 框架 SqlSugar 系列
【动态表达式】.NET开源 ORM 框架 SqlSugar 系列
【查询函数】.NET开源ORM框架 SqlSugar 系列
【过滤器】.NET开源 ORM 框架 SqlSugar 系列
【跨库查询、多库查询】.NET开源 ORM 框架
【报表查询】.NET开源ORM框架 SqlSugar 系列
【Where语法全解密】.NET开源ORM框架 SqlSugar 系列
【Select 语法全解密】.NET开源ORM框架 SqlSugar 系列
【查询返回结果类型】.NET开源ORM框架 SqlSugar 系列
【insert 插入数据语法合集】.NET开源ORM框架 SqlSugar 系列
【SqlSugar雪花ID常见问题】.NET开源ORM框架 SqlSugar 系列
相关文章:
【update 更新数据语法合集】.NET开源ORM框架 SqlSugar 系列
系列文章目录 🎀🎀🎀 .NET开源 ORM 框架 SqlSugar 系列 🎀🎀🎀 文章目录 系列文章目录前言 🍃一、实体对象更新1.1 单条与批量1.2 不更新某列1.3 只更新某列1.4 NULL列不更新1.5 无主键/指定列…...
Elasticsearch—索引库操作(增删查改)
Elasticsearch中Index就相当于MySQL中的数据库表 Mapping映射就类似表的结构。 因此我们想要向Elasticsearch中存储数据,必须先创建Index和Mapping 1. Mapping映射属性 Mapping是对索引库中文档的约束,常见的Mapping属性包括: type:字段数据类…...
C#进阶-在Ubuntu上部署ASP.NET Core Web API应用
随着云计算和容器化技术的普及,Linux 服务器已成为部署 Web 应用程序的主流平台之一。ASP.NET Core 作为一个跨平台、高性能的框架,非常适合在 Linux 环境中运行。本篇博客将详细介绍如何在 Linux 服务器上部署 ASP.NET Core Web API 应用,包…...
执行这个composer require topthink/think-mongo 报错
安装tp5 mongodb扩展 执行这个composer require topthink/think-mongo 报错 解决方法: 1 把composer.json里的"overtrue/wechat": "4.2.11",注释掉再执行 2 composer require topthink/think-mongo1.* 安装mongo的1版本...
大语言模型训练数据集格式
1. SFT(有监督微调)的数据集格式 对于大语言模型的训练中,SFT(Supervised Fine-Tuning)的数据集格式可以采用以下方式: 输入数据:输入数据是一个文本序列,通常是一个句子或者一个段…...
stringRedisTemplate.execute执行lua脚本
stringRedisTemplate.execute执行lua脚本 1. 引入必要依赖 确保项目中已经引入了Spring Data Redis相关依赖,例如在 Maven 项目中,一般会有如下依赖(版本号根据实际情况调整): <dependency><groupId>or…...
鸿蒙UI(ArkUI-方舟UI框架)
参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/arkts-layout-development-overview-V13 ArkUI简介 ArkUI(方舟UI框架)为应用的UI开发提供了完整的基础设施,包括简洁的UI语法、丰富的UI功能ÿ…...
Linux-蓝牙协议
SPP (Serial Port Profile): 串口协议(SPP)是一个蓝牙配置文件,允许设备通过蓝牙模拟传统的串行端口通信。它通常用于无线串口连接,允许设备如计算机和外设(例如打印机或条形码扫描器)之间进行数据传输。A…...
CES Asia 2025:科技盛宴即将开启,续写辉煌篇章
随着2025年国际消费类电子产品展览会(CES)在美国拉斯维加斯盛大开幕并展现出诸多令人瞩目的发展趋势,亚洲科技界也对即将到来的CES Asia 2025充满期待,一场科技盛宴即将在亚洲大陆续写辉煌。 在刚刚拉开帷幕的CES 2025上ÿ…...
tutorial3.c
这个教程程序展示了如何使用 libxlsxwriter 库向 Excel 文件中写入不同类型的数据,包括字符串、数字和日期。以下是程序的主要步骤和功能: 定义数据结构: 定义了一个 expense 结构体,包含三个成员:item(项…...
C# 获取当前运行路径的6种实用方法
C# 获取当前运行路径的多种方法 在C#中,获取当前运行路径(即程序的工作目录)是常见的需求,尤其在处理文件读写、日志记录和配置文件时。不同的场景可能需要使用不同的方法来获取路径。本文将介绍几种常用的获取当前运行路径的方法…...
龙蜥Linux系统部署docker21.1.3版本
龙蜥系统配置docker环境 更新yum源 更新软件源中的包。 yum update安装底层工具 yum install -y yum-utils device-mapper-persistent-data lvm2添加阿里云仓库 # 添加阿里云的docker镜像仓库 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/c…...
.NET中的框架和运行环境
在.NET生态系统中,框架和运行环境是两个不同的概念,它们各自扮演着重要的角色。 下面我将分别介绍.NET中的框架和运行环境,并解释它们之间的区别。 .NET 框架(Frameworks) 框架提供了一套预定义的类库、工具和服务&…...
STM32的存储结构
STM32F103 芯片是基于 ARM Cortex-M3 内核的微控制器,它集成了多种类型的存储器,每种存储器都有其特定的作用和存储对象。以下是关于 STM32F103 中 Flash、ROM 和 SRAM 的详细介绍: 1. Flash Memory (闪存) 作用:Flash 是非易失性…...
微信小程序
一、小程序文件结构 1.目录结构 pages文件夹:存放【页面文件夹】,一个【页面文件夹】就是一个页面,存放着小程序页面文件。即pages中的每一个文件夹都存放着一个小程序页面的文件(js、wxml、json、wxss) 页面文件夹…...
《CPython Internals》阅读笔记:p76-p95
《CPython Internals》学习第 5 天,p76-p95 总结,总计 20 页。 一、技术总结 无。 二、英语总结(生词:1) 1.check vi/vt. to exam sth to ensure it is correct, true, or in good condition.示例: (1)After I’d finished …...
HOW - Form 表单 label 和 wrapper 对齐场景
一、背景 在日常使用 表单 时,我们一般有如下布局: 可以通过 Form 表单提供的配置直接设置: <Formform{form}labelCol{{ span: 4 }}wrapperCol{{ span: 20 }}onFinish{handleSubmit}><Form.Itemlabel"输入框"name"…...
Js的回调函数
一、什么是回调函数(Callback)? 回调函数(Callback Function)是指一个函数被作为参数传递给另一个函数,并在特定事件发生或操作完成时执行。 可以通俗地理解为一种“委托”机制。 在JavaScript中࿰…...
FairGuard游戏安全2024年度报告
导 读:2024年,国内游戏市场实际销售收入3257.83亿元,同比增长7.53%,游戏用户规模6.74亿人,同比增长0.94%,市场收入与用户规模双双实现突破,迎来了历史新高点。但游戏黑灰产规模也在迅速扩大&…...
ant-design-vue 1.X 通过id获取a-input组件失败
1.ant-design-vue 1.X 问题描述 当我在a-form组件中,以v-decorator指令绑定表单组件时,无法根据我设置的verify-code-input获取元素 <a-input type"text" id"verify-code-input" class"paIpt":placeholder"$t(…...
JS爬虫实战演练
在这个小红书私信通里面进行一个js的爬虫 文字发送 async function sendChatMessage(content) {const url https://pro.xiaohongshu.com/api/edith/ads/pro/chat/chatline/msg;const params new URLSearchParams({porch_user_id: 677e116404ee000000000001});const messageD…...
JVM vs JDK vs JRE
JVM是Java虚拟机的缩写, 用于实现Java的一次编译,处处运行。 Java代码写成.class后,由本地的虚拟机运行。 JDK(Java Development Kit)是一个功能齐全的 Java 开发工具包,供开发者使用。 JDK包含了JRE。…...
OpenCV相机标定与3D重建(47)从两幅图像中的一组匹配点恢复相机的姿态(旋转和平移)函数recoverPose()的使用
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 从两幅不同相机拍摄的图像中对应的点恢复相对相机旋转和平移,使用手性检查。返回通过该检查的内点数量。 cv::recoverPose 是 OpenCV…...
代码随想录算法训练营day27
代码随想录算法训练营 —day27 文章目录 代码随想录算法训练营前言一、贪心算法理论基础二、455.分发饼干三、376. 摆动序列53. 最大子数组和总结 前言 今天是算法营的第27天,希望自己能够坚持下来! 今日任务: ● 贪心算法理论基础 ● 455.…...
基于华为ENSP的OSPF状态机、工作过程、配置保姆级别详解(2)
本篇技术博文摘要 🌟 基于华为enspOSPF状态机、OSPF工作过程、.OSPF基本配置等保姆级别具体详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法 引言 📘 在这个快速发展的技术时代,与时俱进是每个IT人的必修课。我…...
【数据结构】链表
目录 编辑 1.2链表 1.2.1 链表的特性 1.2.2 单向链表 遍历无头单向链表 遍历有头单向链表 链表尾插法练习 1.2.3 单向链表的函数操作 单向链表的特点: 1.2链表 链表又称单链表、链式存储结构,用于存储逻辑关系为“一对一”的数据。 和顺序表…...
RabbitMQ解决消息积压的方法
目录 减少发送mq的消息体内容 增加消费者数量 批量消费消息 临时队列转移 监控和预警机制 分阶段实施 最后还有一个方法就是开启队列的懒加载 这篇文章总结一下自己知道的解决消息积压得方法。 减少发送mq的消息体内容 像我们没有必要知道一个的中间状态,只需…...
机器学习是?
机器学习(Machine Learning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科; 是人工智能(AI)的一个分支,也是AI的核心领域,它专注于开发算法和模型&#…...
jupyter出现“.ipynb appears to have died. It will restart automatically.”解决方法
原因 解决方法:更新jupyter的版本 1.打开anaconda prompt 2、更新jupyter版本 在anaconda prompt输入以下指令 conda update jupyter如图:...
计算机毕业设计PyHive+Hadoop深圳共享单车预测系统 共享单车数据分析可视化大屏 共享单车爬虫 共享单车数据仓库 机器学习 深度学习
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
c++开源协程库libgo介绍及使用,srs协程,boost协程 Boost::fiber
https://www.cnblogs.com/qwsdcv/p/9115364.html Boost - 从Coroutine2 到Fiber - 开学五年级了 - 博客园 协程就是由程序员控制跑在线程里的“微线程”。它可以由程序员调度,切换协程时代价小(切换根据实现不同,消耗的CPU周期从几十到几百不等)&#x…...
微服务实现高并发 秒杀系统,前后端实现
一、前端实现 前端项目初始化 首先,我们需要创建一个新的 Vue 3 项目。你可以使用 Vue CLI 来快速搭建项目。 安装 Vue CLI(如果尚未安装) bash npm install -g vue/cli 创建 Vue 项目 bash vue create seckill-frontend cd seckill-f…...
Eureka缓存机制
一、Eureka的CAP特性 Eureka是一个AP系统,它优先保证可用性(A)和分区容错性(P),而不保证强一致性(C)。这种设计使得Eureka在分布式系统中能够应对各种故障和分区情况,保…...
PHP语言的学习路线
PHP语言的学习路线 PHP(Hypertext Preprocessor)是一种广泛使用的开源服务器端脚本语言,尤其适用于Web开发。由于其易学易用、功能强大,PHP成为了许多动态网站和Web应用程序开发的首选语言。随着Web3.0和云计算的兴起,…...
python学opencv|读取图像(二十八)使用cv2.warpAffine()函数平移图像
【1】引言 前序已经对图像操作进行了广泛的学习,包括读取、放大缩小,改变BGR通道值等,相关链接包括且不限于: python学opencv|读取图像-CSDN博客 python学opencv|读取图像(三)放大和缩小图像_python(1)使…...
[Linux]Mysql9.0.1服务端脱机安装配置教程(redhat)
前言 本教程适用于在yum源不可用的LInux主机上安装Mysql的场景。 以redhat系主机做操作示例,debian系主机可参照步骤,将对应的rpm -ivh命令换成dpkg -i。 1. 官网下载安装包 https://dev.mysql.com/downloads/mysql/ 1.1 版本分类 MySQL Enterprise…...
个人 ALL IN ONE 方案搭建方案分享(从硬件到软件)及内网穿透方案
这里只做大概方案分享,每个虚拟机的部署细节滤过。 个人 ALL IN ONE 方案搭建方案分享 本指南将详细介绍如何基于现有硬件搭建一体化家庭/个人服务器解决方案,涵盖从软硬件配置、系统安装到功能实现以及性能优化的全过程。实现集 软路由、旁路由、NAS 网…...
TrustRAG:增强RAG系统鲁棒性与可信度的创新框架
在人工智能飞速发展的今天,大语言模型(LLMs)凭借其强大的语言处理能力在诸多领域大放异彩。检索增强生成(RAG)系统(面向企业RAG(Retrieval Augmented Generation)系统的多维检索框架…...
使用证件照制作软件的常见问题及解决方案
在数字化时代,证件照的制作变得越来越简单。借助各种证件照制作软件,我们可以轻松在家中制作出符合要求的证件照。然而,用户在使用这些软件时,可能会遇到一些常见问题。为了帮助您顺利制作出满意的证件照,我们整理了一…...
通过gradle发布aar或jar携带sources-jar到maven nexus
找了很久,没有找到满意的。终于找到一个好的办法。 gradle7.x适用。比以前的写法简洁。 发布传统的jar工程 比如okhttp,fastjson等项目,纯java工程。 直接创建新文件publish.gradle: apply plugin: maven-publishProperties properties …...
SAP推出云端ERP解决方案,加速零售行业数字化转型
2025年1月9日,SAP发布了一款专为零售行业设计的云端ERP行业解决方案——S/4HANA Cloud Public Edition,进一步推动企业向云端迁移。这款解决方案旨在集中运营数据,整合财务、采购和商品管理流程,以帮助零售企业优化运营效率。 核…...
RK3568 Android 13 内置搜狗输入法小计
问:为什么写? 答:网上搜出来的都试过了,不行!下面直接上代码和注意事项! 首先到这个目录(/RK3568/Rockchip_Android13_SDK_Release/device/rockchip/rk356x/tl3568_evm/preinstall)…...
微服务-Nacos(注册中心)
Nacos Nacos可以看作注册中心配置中心,比Eureka更加强大。 注册中心 在父工程中引入SpringCloudAlibaba的版本依赖 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId&g…...
【数据结构:前缀树Trie】
目录 前言前缀树介绍和应用一、前缀树的定义前缀树的问题和思考前缀树的映射思想前缀树三大性质 二.前缀树节点结构三. 前缀树接口介绍和实现四个接口API1. insert(String word)2. search(String word)3. startsWith(String pre)4. delete(String word) API实现1. 查询操作sear…...
如何让QPS提升20倍
一、什么是QPS QPS,全称Queries Per Second,即每秒查询率,是用于衡量信息检索系统(例如搜索引擎或数据库)或请求-响应系统(如Web服务器)每秒能够处理的请求数或查询次数的一个性能指标。以下是…...
时间复杂度简介
定义 时间复杂度是用来衡量算法运行时间随着输入规模增长而增长的量级。简单来说,它描述了算法执行时间与数据规模之间的关系。我们通常用大O符号( O O O)来表示时间复杂度。例如,对于一个简单的加法运算,它的执行时间…...
记一次sealos部署k8s集群之delete了第一台master如何恢复
记一次sealos部署k8s集群之delete了第一台master如何恢复 一、背景描述 使用sealos部署了一套K8S集群 master信息:172.27.100.1、172.27.100.2、172.27.100.3 node信息:172.27.100.4、172.27.100.5 sealos安装在172.27.100.1节点,根目录下/root/.sealos/文件还在! [root…...
【json】
JSON JSON是一种轻量级的,按照指定的格式去组织和封装数据的数据交互格式。 本质上是一个带有特定格式的字符串(py打印json时认定为str类型) 在各个编程语言中流通的数据格式,负责不同编程语言中的数据传递和交互,类似于计算机普通话 python与json关系及相互转换…...
TypeScript语言的并发编程
TypeScript语言的并发编程 引言 随着现代应用程序的复杂性不断增加,性能和用户体验的重要性显得尤为突出。在这种背景下,并发编程应运而生,成为提升应用程序效率的重要手段。在JavaScript及其超集TypeScript中,尽管语言本身是单…...
左值引用(Lvalue Reference)和右值引用(Rvalue Reference)详解
左值引用(Lvalue Reference)和右值引用(Rvalue Reference)详解 文章目录 左值引用(Lvalue Reference)和右值引用(Rvalue Reference)详解1. 什么是左值和右值?左值&#x…...