【C#】Mapster对象映射的使用

系列文章

【C#】编号生成器(定义单号规则、固定字符、流水号、业务单号)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129129787

【C#】日期范围生成器(开始日期、结束日期)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129040663

【C#】组件化开发,调用dll组件方法
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129492112

【C#】数据实体类使用
本文链接:https://blog.csdn.net/youcheng_ge/article/details/128816638

【C#】单据审批流方案
本文链接:https://blog.csdn.net/youcheng_ge/article/details/128972545

【C#】条码管理操作手册
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126589496

【C#】IIS平台下,WebAPI发布及异常处理
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126539836

【C#】代码模板生成工具
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126890673

【C#】MySQL数据库导入工具(批量Excel插入)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126427323

【C#】简单二维码制作和打印工具
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126884228

【C#】最全单据打印(打印模板、条形码&二维码、字体样式、项目源码)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129415723

【C#】Windows服务(Service)安装及启停方案
本文链接:https://blog.csdn.net/youcheng_ge/article/details/124053794

【C#】穿透Session隔离,服务调用外部程序(无窗体界面解决)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/124053033

【C#】任务计划实现,使用Quartz类
本文链接:https://blog.csdn.net/youcheng_ge/article/details/123667723

【C#】源码解析正则表达式
本文链接:https://blog.csdn.net/youcheng_ge/article/details/118337074

【C#】软件版本和文件MD5记录(XML操作)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/112513871

【C#】测试网络是否连通
本文链接:https://blog.csdn.net/youcheng_ge/article/details/110137288

【C#】根据名称获取编码(Dictionary获取key方法)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129816701

【C#】数据建模,你是使用DataTable还是List?
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129792726

【C#】GridControl控件和数据集双向绑定
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129423755

【C#】GridControl动态更换DataSource,数据查询异常处理
本文链接:https://blog.csdn.net/youcheng_ge/article/details/130305424

【C#】GridControl日期字段显示时分秒
本文链接:https://blog.csdn.net/youcheng_ge/article/details/130718303

【C#】GridControl增加选择列(不用二次点击)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/130763713

【C#】数据库检查工具(可跨库访问)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/97172329

【C#】代码解析–打印数据集
本文链接:https://blog.csdn.net/youcheng_ge/article/details/131431829

【C#】代码解析–截取整个方法函数
本文链接:https://blog.csdn.net/youcheng_ge/article/details/109817809

【C#】反射机制,动态加载类文件
本文链接:https://blog.csdn.net/youcheng_ge/article/details/131435110


文章目录

  • 系列文章
  • 前言
  • 一、问题描述
  • 二、解决方案
  • 三、软件开发(源码)
    • 3.1 引入开发包
    • 3.2 数据库实体类Entity
    • 3.3 数据传输对象Dto
    • 3.4 Dto到Entity映射
  • 四、项目展示
  • 五、资源链接


前言

我能抽象出整个世界,但是我不能抽象你。 想让你成为私有常量,这样外部函数就无法访问你。 又想让你成为全局常量,这样在我的整个生命周期都可以调用你。 可惜世上没有这样的常量,我也无法定义你,因为你在我心中是那么的具体。

哈喽大家好,本专栏为【项目实战】专栏,有别于【底层库】专栏,我们可以发现增加 了『问题描述』、『项目展示』章节,十分符合项目开发流程,让读者更加清楚项目解决的问题、以及产品能够达到的效果。本专栏收纳项目开发过程的解决方案,是我项目开发相对成熟、可靠方法的提炼,我将这些问题的解决思路梳理,撰写本文分享给大家,大家遇到类似问题,可按本文方案处理。

本专栏会持续更新,不断完善,专栏文章关联性较弱(文章之间依赖性较弱,没有阅读顺序)。大家有任何问题,可以私信我。如果您对本专栏感兴趣,欢迎关注吧,我将带你用最简洁的代码,实现复杂的功能。

·提示:本专栏为项目实战篇,未接触项目开发的同学可能理解困难,不推荐阅读。
3A0N000001


一、问题描述

Mapster对象映射的使用

二、解决方案

三、软件开发(源码)

3.1 引入开发包

Mapster

在这里插入图片描述

3.2 数据库实体类Entity

DBFirst 自动根据数据库表,生成数据库实体,或者使用我的 工具,一样可以生成类文件。

//------------------------------------------------------------------------------
//     Entity实体类,也称为DBModel。
//     此代码由工具自动生成,请勿手动创建。
//     如果重新生成代码,将覆盖手动添加内容。
//------------------------------------------------------------------------------

using System.ComponentModel.DataAnnotations;
using System;
using System.Linq;
using System.Text;
using SqlSugar;


namespace YS.Model
{
    ///<summary>
    ///基础信息
    ///</summary>
    [SugarTable("裸砂原料信息表")]
    public class 裸砂原料信息表
    {
        public 裸砂原料信息表()
        {
        }

        /// <summary>
        /// 描述 :  
        /// 空值 : False
        /// 默认 : 
        /// </summary>
        [Display(Name = "")]
        [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
        public long AutoID { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 公司编号 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 四期
        /// </summary>
        [Display(Name = "")]
        public string 工厂名称 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 存货编码 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 采购订单编号 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 领用申请单编号 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 销售订单编号 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 供应商编号 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 裸砂原料类型 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 裸砂原料编号 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 砂规格 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 砂型号 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 状态描述 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 0.000
        /// </summary>
        [Display(Name = "")]
        public decimal? 当前数量 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 1000-01-01 00:00:00
        /// </summary>
        [Display(Name = "")]
        public DateTime? 打标时间 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 1000-01-01 00:00:00
        /// </summary>
        [Display(Name = "")]
        public DateTime? 打标录入时间 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 打标人编号 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 0.000
        /// </summary>
        [Display(Name = "")]
        public decimal? 打标数量 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 打标备注 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 否
        /// </summary>
        [Display(Name = "")]
        public string 是否隔离 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 1000-01-01 00:00:00
        /// </summary>
        [Display(Name = "")]
        public DateTime? 隔离时间 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 1000-01-01 00:00:00
        /// </summary>
        [Display(Name = "")]
        public DateTime? 隔离录入时间 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 隔离人编号 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 隔离原因 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 否
        /// </summary>
        [Display(Name = "")]
        public string 是否放行 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 1000-01-01 00:00:00
        /// </summary>
        [Display(Name = "")]
        public DateTime? 放行时间 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 1000-01-01 00:00:00
        /// </summary>
        [Display(Name = "")]
        public DateTime? 放行录入时间 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 放行人编号 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 放行原因 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 1000-01-01 00:00:00
        /// </summary>
        [Display(Name = "")]
        public DateTime? 检验合格时间 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 检验合格样品编号 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 0.000
        /// </summary>
        [Display(Name = "")]
        public decimal? 检验合格数量 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 1000-01-01 00:00:00
        /// </summary>
        [Display(Name = "")]
        public DateTime? 首次入库时间 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 生产领用
        /// </summary>
        [Display(Name = "")]
        public string 领用类型 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 1000-01-01 00:00:00
        /// </summary>
        [Display(Name = "")]
        public DateTime? 领用时间 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 1000-01-01 00:00:00
        /// </summary>
        [Display(Name = "")]
        public DateTime? 领用录入时间 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 领用人编号 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 领用备注 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 1000-01-01 00:00:00
        /// </summary>
        [Display(Name = "")]
        public DateTime? 退库时间 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 1000-01-01 00:00:00
        /// </summary>
        [Display(Name = "")]
        public DateTime? 退库录入时间 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 退库操作人编号 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 退库原因 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 退库备注 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 1000-01-01 00:00:00
        /// </summary>
        [Display(Name = "")]
        public DateTime? 采购退货时间 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 1000-01-01 00:00:00
        /// </summary>
        [Display(Name = "")]
        public DateTime? 采购退货录入时间 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 采购退货操作人编号 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 采购退货原因 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 采购退货备注 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 1000-01-01 00:00:00
        /// </summary>
        [Display(Name = "")]
        public DateTime? 报废时间 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 1000-01-01 00:00:00
        /// </summary>
        [Display(Name = "")]
        public DateTime? 报废录入时间 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 报废操作人编号 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 报废原因 { get; set; }

        /// <summary>
        /// 描述 :  
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 报废备注 { get; set; }

        /// <summary>
        /// 描述 :  仓库编码
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 仓库编码 { get; set; }

        /// <summary>
        /// 描述 :  货位编码
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "")]
        public string 货位编码 { get; set; }

    }
}

3.3 数据传输对象Dto

创建数据传输对象,也就是前端给后台传输的数据实体,由用户自定义
我这里前端下拉选,有key值,需要传到后台构造 编号字段的,但是数据库存储,是存的名称,不需要参照显示哦。

集成自3.2的实体列,在此基础上略微增加几个字段

//------------------------------------------------------------------------------
//     Entity实体类,也称为DBModel。
//     此代码由工具自动生成,请勿手动创建。
//     如果重新生成代码,将覆盖手动添加内容。
//------------------------------------------------------------------------------

using System.ComponentModel.DataAnnotations;
using System;
using System.Linq;
using System.Text;
using SqlSugar;


namespace YS.Model
{
    ///<summary>
    ///基础信息
    ///</summary>
    [SugarTable("裸砂原料信息表")]
    public class 裸砂原料信息表Dto : 裸砂原料信息表
    {

        /// <summary>
        /// 描述 :  裸砂原料类型编码
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "裸砂原料类型编码")]
        public string 裸砂原料类型编码 { get; set; }

        /// <summary>
        /// 描述 :  砂规格编码
        /// 空值 : True
        /// 默认 : 砂规格编码
        /// </summary>
        [Display(Name = "砂规格编码")]
        public string 砂规格编码 { get; set; }

        /// <summary>
        /// 描述 :  砂型号编码
        /// 空值 : True
        /// 默认 : 空
        /// </summary>
        [Display(Name = "砂型号编码")]
        public string 砂型号编码 { get; set; }

    }
}

3.4 Dto到Entity映射

引入命名空间

using Mapster;

实体映射
Adapt 映射关键字

// DataTable转换为对象处理
var sqlSugar1 = new BaseService<裸砂原料信息表Dto>();
List<裸砂原料信息表Dto> list1 = sqlSugar1.Db.Utilities.DataTableToList<裸砂原料信息表Dto>(Dt_Info);

// list就一条数据
裸砂原料信息表Dto 裸砂原料信息表Dto_Model = list1[0];

string str_LastAutoCode = AutoCode(string.Format("Y{0}{1}0{2}{3}[3位流水号]",
     裸砂原料信息表Dto_Model.供应商编号,
     裸砂原料信息表Dto_Model.裸砂原料类型编码,
     裸砂原料信息表Dto_Model.砂规格编码,
     裸砂原料信息表Dto_Model.砂型号编码
     ),
     "裸砂原料信息表", "裸砂原料编号");

裸砂原料信息表Dto_Model.裸砂原料编号 = str_LastAutoCode;
裸砂原料信息表Dto_Model.状态描述 = 裸砂原料状态.等待裸砂原料样检验;
裸砂原料信息表Dto_Model.打标时间 = DateTimeNow;
裸砂原料信息表Dto_Model.打标录入时间 = DateTimeNow;
裸砂原料信息表Dto_Model.打标人编号 = UserID;


// 做表映射,Dto->Entity
var info = 裸砂原料信息表Dto_Model.Adapt<裸砂原料信息表>();
var sqlSugar2 = new BaseService<裸砂原料信息表>();
sqlSugar2.Add(info);

有人可能问为什么有 DataTableToList()处理,我也没办法,接口中参数非要给我定义成 DataTable,我认为传输对象最好,直接定义成泛型,他们不听我的。
所以,数据后台处理我做了了转换,使用list处理。

四、项目展示

五、资源链接

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

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

相关文章

【Java】SPI在Java中的实现与应用

一、SPI的概念 1.1、什么是API&#xff1f; API在我们日常开发工作中是比较直观可以看到的&#xff0c;比如在 Spring 项目中&#xff0c;我们通常习惯在写 service 层代码前&#xff0c;添加一个接口层&#xff0c;对于 service 的调用一般也都是基于接口操作&#xff0c;通…

【Git】如何安装git,项目中使用git上传到远程仓库,使用git中对多人使用出现的版本问题的解决

前言&#xff1a; 一&#xff0c;Git的介绍&#xff0c;安装&#xff0c;与SVN的对比 1.1Git的介绍 Git 是一个开源的分布式版本控制系统&#xff0c;用于敏捷高效地处理任何或小或大的项目。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控…

民生画派创始人张龙(天驰)作品

简介 张龙&#xff08;天驰&#xff09; 中国民生画派创始人 首届“陆俨少奖”金奖得主 人民大学巨幅主题创作高级研修班导师 中央美院客座教授 神舟十二号载人飞船遨游太空搭载作品创作者 被评为2021、2022年年度最具收藏价值艺术家 中国美术家协会会员 中国美术家协…

【数据结构】单链表OJ题(二)

&#x1f525;博客主页&#xff1a; 小羊失眠啦. &#x1f3a5;系列专栏&#xff1a;《C语言》 《数据结构》 《Linux》《Cpolar》 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 文章目录 一、分割链表二、回文链表三、相交链表四、环形链表 I五、环形链表 II 六、链表的深度拷…

17 Linux 中断

一、Linux 中断简介 1. Linux 中断 API 函数 ① 中断号 每个中断都有一个中断号&#xff0c;通过中断号可以区分出不同的中断。在 Linux 内核中使用一个 int 变量表示中断号。 ② request_irq 函数 在 Linux 中想要使用某个中断是需要申请的&#xff0c;request_irq 函数就是…

【python海洋专题四十四】海洋指数画法--多色渐变柱状图

【python海洋专题四十四】海洋指数画法–多色渐变柱状图

winform开发小技巧

如果我们不知道怎么在代码中new 一个控件&#xff0c;我们可以先在窗体中拉一个然后看Form1.Designer.cs 里面生成的代码就是我们要的 我们会在下面看到 还有泛型的使用&#xff0c;马上更新

Termius for Mac:掌控您的云端世界,安全高效的SSH客户端

你是否曾经在Mac上苦苦寻找一个好用的SSH客户端&#xff0c;让你能够远程连接到Linux服务器&#xff0c;轻松管理你的云端世界&#xff1f;现在&#xff0c;我们向你介绍一款强大而高效的SSH客户端——Termius。 Termius是一款专为Mac用户设计的SSH客户端&#xff0c;它提供了…

JavaScript从入门到精通系列第三十二篇:详解正则表达式语法(一)

文章目录 一&#xff1a;正则表达式 1&#xff1a;量词设置次数 2&#xff1a;检查字符串以什么开头 3&#xff1a;检查字符串以什么结尾 4&#xff1a; 同时使用开头结尾 5&#xff1a;同值开头同值结尾 二&#xff1a;练习 1&#xff1a;检查是否是一个手机号 大神链…

『MySQL快速上手』-⑤-数据类型

文章目录 1.数据类型有哪些2.数值类型2.1 tinyint 类型2.2 bit 类型2.3 小数类型2.3.1 float2.3.2 decimal3.字符串类型3.1 char3.2 varchar3.2 char 和 varchar 比较4.日期和时间类型5.enum和set1.数据类型有哪些 MySQL支持多种数据类型,这些数据类型可用于定义表中的列,以…

Selenium关于内容信息的获取读取

在进行自然语言处理、文本分类聚类、推荐系统、舆情分析等研究中,通常需要使用新浪微博的数据作为语料,这篇文章主要介绍如果使用Python和Selenium爬取自定义新浪微博语料。因为网上完整的语料比较少,而使用Selenium方法有点简单、速度也比较慢,但方法可行,同时能够输入验…

【Unity ShaderGraph】| 如何快速制作一个炫酷的 全息投影效果

前言 【Unity ShaderGraph】| 如何快速制作一个炫酷的 全息投影效果一、效果展示二、 全息投影效果 前言 本文将使用ShaderGraph制作一个 炫酷的 全息投影效果 &#xff0c;可以直接拿到项目中使用。对ShaderGraph还不了解的小伙伴可以参考这篇文章&#xff1a;【Unity Shader…

三国志14信息查询小程序(历史武将信息一览)制作更新过程06-复现小程序

0&#xff0c;所需文件 所需全部文件下载 文件总览&#xff1a; 代码&#xff1a; 数据库&#xff1a; 1&#xff0c;前期准备 假定你已经看过前面的文章&#xff0c;并完成了下列准备&#xff1a; &#xff08;1&#xff09;一台有公网IP的云服务器&#xff0c;服务器上…

Oracle 三种分页方法(rownum、offset和fetch、row_number() over())

Oracle的三种分页指的是在进行分页查询时&#xff0c;使用三种不同的方式来实现分页效果&#xff0c;分别是使用rownum、使用offset和fetch、使用row_number() over() 1、使用rownum rownum是oracle中一个伪劣&#xff0c;它用于表示返回的行的序号。使用rownum进行分页查询的方…

数据结构之单链表基本操作

&#x1f937;‍♀️&#x1f937;‍♀️&#x1f937;‍♀️ 今天给大家分享的是单链表的基本操作。 清风的个人主页 &#x1f389;欢迎&#x1f44d;点赞✍评论❤️收藏 &#x1f61b;&#x1f61b;&#x1f61b;希望我的文章能对你有所帮助&#xff0c;有不足的地方还请各位…

大数据毕业设计选题推荐-农作物观测站综合监控平台-Hadoop-Spark-Hive

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

计算当月工作日时间进度

目录 1.按一个月平均算 2.除去星期六星期天算 3.自定义节假日算 1.按一个月平均算 // 获取当前时间 const now new Date(); // 获取当前年份和月份 const currentYear now.getFullYear(); const currentMonth now.getMonth() 1; // 计算当月天数 const daysInMonth ne…

【Docker】iptables基本原理

在当今数字化时代&#xff0c;网络安全问题变得越来越重要。为了保护我们的网络免受恶意攻击和未经授权的访问&#xff0c;我们需要使用一些工具来加强网络的安全性。其中&#xff0c;iptables是一个强大而受欢迎的防火墙工具&#xff0c;它可以帮助我们控制网络流量并保护网络…

【剑指offer|图解|双指针】训练计划 I + 删除有序数组中的重复项

&#x1f308;个人主页&#xff1a;聆风吟 &#x1f525;系列专栏&#xff1a;数据结构、算法模板 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 &#x1f4cb;前言一. ⛳️训练计划 I二. ⛳️查找总价格为目标值的两个商品三. ⛳️删除有序数组中的…

【JAVA学习笔记】67 - 坦克大战1.5 - 1.6,防止重叠,记录成绩,选择是否开新游戏或上局游戏,播放游戏音乐

项目代码 https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter20/src 增加功能 1.防止敌人坦克重叠运动 2.记录玩家的成绩&#xff0c;存盘退出 3.记录当时的敌人坦克坐标&#xff0c;存盘退出 4.玩游戏时&#xff0c;可以选择是开新游戏还是继续上局…