【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 不更新某列

🌰不更新 TestIdCreateTime

var result=db.Updateable(updateObj).IgnoreColumns(it => new { it.CreateTime,it.TestId }).ExecuteCommand()
 
//也可以用特性
[SugarColumn(IsOnlyIgnoreUpdate=true)]
public DateTime UpdateDate{get;set;}

1.3 只更新某列

🌰只更新 NameCreateTime

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

  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 指定一下。

  1. 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种方案:

  1. 删除当前记录,然后在添加一条新记录(因为主键都可以更新,说明没有外部引用,可以直接删掉在加)

  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() sysdate
  public DateTime UpdateTime { get; set; }
   
   
  //更新根据SQL进行插入 
   [SugarColumn(UpdateSql  = "getdate()")] //生成   getdate()
   public DateTime UpdateTime2 { get; set; }
  
   [SugarColumn(UpdateSql  = "''")] // 生成  ''
   public string  Str { get; set; }
    
   [SugarColumn(UpdateSql  = "0")]// 生成  0
   public string  Str { get; set; }
    
   [SugarColumn(UpdateSql  = "num+1")]// 生成  num+1
     public 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 系列


在这里插入图片描述

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

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

相关文章

51单片机入门基础

目录 一、基础知识储备 &#xff08;一&#xff09;了解51单片机的基本概念 &#xff08;二&#xff09;掌握数字电路基础 &#xff08;三&#xff09;学习C语言编程基础 二、开发环境搭建 &#xff08;一&#xff09;硬件准备 &#xff08;二&#xff09;软件准备 三、…

22、PyTorch nn.Conv2d卷积网络使用教程

文章目录 1. 卷积2. python 代码3. notes 1. 卷积 输入A张量为&#xff1a; A [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ] \begin{equation} A\begin{bmatrix} 0&1&2&3\\\\ 4&5&6&7\\\\ 8&9&10&11\\\\ 12&13&14&15 \end{b…

Python爬虫-汽车之家各车系周销量榜数据

前言 本文是该专栏的第43篇,后面会持续分享python爬虫干货知识,记得关注。 在本专栏之前,笔者在文章《Python爬虫-汽车之家各车系月销量榜数据》中,有详细介绍,如何爬取“各车系车型的月销量榜单数据”的方法以及完整代码教学教程。 而本文,笔者同样以汽车之家平台为例,…

web前端第五次作业---制作菜单

制作菜单 代码: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><style…

个人曾经ARM64_汇编角度_PLTHOOK的研究

ARM64基础HOOK研究_2024 之前为了实现一个修改器变速器的小功能,结果研究了很多关于ELF的内容,特别是so文件(ARM64的) 还研究了Hook,以及注入进程等操作,以及实现类似IDA那样的断点,汇编转换,以及软硬断点等(实现了CE那种谁写入/访问/读取的检测),这里就不作记录了,只记录一下简…

win10 Outlook(new) 企业邮箱登录 登录失败。请在几分钟后重试。

windows系统经常弹出使用Outlook(new&#xff09;&#xff0c;自动切过去。 但是登录企业的内网邮箱&#xff0c;折腾了好几次都使用不了。排查网络等问题&#xff0c;在社区找到了答案。 推出一年多不支持企业账户&#xff0c;所以之前的折腾都是浪费时间。 因为这个答案不太…

MySQL中的四种表联结

目录 1、联结、关系表 &#xff08;1&#xff09;关系表 &#xff08;2&#xff09;为什么使用联结 2、如何创建联结 &#xff08;1&#xff09;笛卡尔积&#xff08;叉联结&#xff09;--用逗号分隔 &#xff08;2&#xff09;where子句的重要性 &#xff08;3&#xff…

【Oracle专栏】group by 和distinct 效率

Oracle相关文档&#xff0c;希望互相学习&#xff0c;共同进步 风123456789&#xff5e;-CSDN博客 1.背景 查阅资料&#xff1a; 1&#xff09;有索引情况下&#xff0c;group by和distinct都能使用索引&#xff0c;效率相同。 2&#xff09;无索引情况下&#xff0c;distinct…

easyui datagrid表头和网格错位问题

问题&#xff1a;表头与数据网格错位 解决&#xff1a; 在onLoadSuccess事件中调用fitColumns方法 $(this).datagrid(‘fitColumns’);

[文献精汇]使用 LSTM Networks 的均值回归交易策略

Backtrader 策略实例 [Backtrader]实例:均线策略[Backtrader] 实例:MACD策略[Backtrader] 实例:KDJ 策略[Backtrader] 实例:RSI 与 EMA 结合[Backtrader] 实例:SMA自定义数据源[Backtrader] 实例:海龟策略[Backtrader] 实例:网格交易[Backtrader] 实例: 配对交[Backtrader] 机…

DBeaver执行本地的sql语句文件避免直接在客户端运行卡顿

直接在客户端运行 SQL 语句和通过加载本地文件执行 SQL 语句可能会出现不同的性能表现&#xff0c;原因可能包括以下几点&#xff1a; 客户端资源使用&#xff1a; 当你在客户端界面直接输入和执行 SQL 语句时&#xff0c;客户端可能会消耗资源来维护用户界面、语法高亮、自动完…

opencv warpAffine仿射变换C++源码分析

基于opencv 3.1.0源代码 sources\modules\imgproc\src\imgwarp.cpp void cv::warpAffine( InputArray _src, OutputArray _dst,InputArray _M0, Size dsize,int flags, int borderType, const Scalar& borderValue ) {...if( !(flags & WARP_INVERSE_MAP) ){//变换矩阵…

【数字化】华为-用变革的方法确保规划落地

导读&#xff1a;华为在数字化转型过程中&#xff0c;深刻认识到变革的必要性&#xff0c;并采用了一系列有效的方法确保转型规划的有效落地。华为认为&#xff0c;数字化转型不仅仅是技术层面的革新&#xff0c;更是企业运作模式、流程、组织、文化等深层次的变革。数字化转型…

Excel中SUM求和为0?难道是Excel有Bug!

大家好&#xff0c;我是小鱼。 在日常工作中有时会遇到这样的情况&#xff0c;对Excel表格数据进行求和时&#xff0c;结果竟然是0&#xff0c;很多小伙伴甚至都怀疑是不是Excel有Bug&#xff01;其实&#xff0c;在WPS的Excel表格中数据求和&#xff0c;结果为0无法正确求和的…

极客说|Azure AI Agent Service 结合 AutoGen/Semantic Kernel 构建多智能体解决⽅案

作者&#xff1a;卢建晖 - 微软高级云技术布道师 「极客说」 是一档专注 AI 时代开发者分享的专栏&#xff0c;我们邀请来自微软以及技术社区专家&#xff0c;带来最前沿的技术干货与实践经验。在这里&#xff0c;您将看到深度教程、最佳实践和创新解决方案。关注「极客说」&am…

【Block总结】稀疏自注意力机制SABlock,即插即用

SparseViT论文解读 论文标题: SparseViT: Nonsemantics-Centered, Parameter-Efficient Image Manipulation Localization through Spare-Coding Transformer 论文链接: https://arxiv.org/pdf/2412.14598 官方GitHub: https://github.com/scu-zjz/SparseViT #研究背景 图像操…

RocketMQ 知识速览

文章目录 一、消息队列对比二、RocketMQ 基础1. 消息模型2. 技术架构3. 消息类型4. 消费者类型5. 消费者分组和生产者分组 三、RocketMQ 高级1. 如何解决顺序消费和重复消费2. 如何实现分布式事务3. 如何解决消息堆积问题4. 如何保证高性能读写5. 刷盘机制 &#xff08;topic 模…

【数据可视化-12】数据分析岗位招聘分析

&#x1f9d1; 博主简介&#xff1a;曾任某智慧城市类企业算法总监&#xff0c;目前在美国市场的物流公司从事高级算法工程师一职&#xff0c;深耕人工智能领域&#xff0c;精通python数据挖掘、可视化、机器学习等&#xff0c;发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…

使用Eclipse将Springboot项目打jar包

打包&#xff1a; 选中i项目&#xff08;或父项目&#xff09;&#xff0c;右键——Run As——Maven Clean。 选中i项目&#xff08;或父项目&#xff09;&#xff0c;右键——Run As——Maven Install。 运行jar包&#xff1a; java -jar mservice-sql-0.0.1-SNAPSHOT.jar

八 rk3568 android11 AP6256 蓝牙调试

一 经典蓝牙 经典蓝牙默认可以工作, 验证可以连接 蓝牙鼠标,键盘, 连接手机等等, 在 系统设置里打开蓝牙 ,扫描设备,配对连接即可。 注: 连接 ANDROID 手机的坑 1 手机连接之后空闲状态会断开 ,变成 配对的设备不是已连接,是正常,使用时又会自动 连接 2 手机传…