第1章 获取数据库中的数据

news2024/9/30 5:25:38

    CoreShop源程序是以数据库优先进行定义的,所以其本身不包含代码优先的定义,但本从更习惯于代码优先,所以为其定义了代码优先的定义。

1 CoreCms.Net.Model.Entities.SysRole

using SqlSugar;

using System.ComponentModel.DataAnnotations;

namespace CoreCms.Net.Model.Entities

{

    /// <summary>

    /// 【系统角色--类】

    /// <remarks>

    /// 摘要:

    ///     通过该实体类及其属性成员,用于实现当前程序【CoreCms.Net.Model.【实体集】.SysRole】实体与“[CoreShop230628].[SysRole]”表之间的CURD的交互操作,并把这些数据存储到数据库设置实例中(内存)

    /// </remarks>

    /// </summary>

    [SugarTable("SysRole", TableDescription = "角色表")]

    public class SysRole

    {

        /// <summary>

        /// 【角色编号】

        /// <remarks>

        /// 摘要:

        ///     获取/设置系统角色实体1个指定实例的整型编号值。

        /// IsPrimaryKey:主键

        /// IsIdentit:自增

        /// </remarks>

        /// </summary>

        [Display(Name = "角色编号")]

        [SugarColumn(ColumnDescription = "角色编号", IsPrimaryKey = true, IsIdentity = true)]

        [Required(ErrorMessage = "请输入{0}")]

        public int Id { get; set; }

        /// <summary>

        /// 【角色名称】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统角色的名称。

        /// </remarks>

        /// </summary>

        [Display(Name = "角色名称")]

        [SugarColumn(ColumnDescription = "角色名称", ColumnDataType = "nvarchar", Length = 50)]

        [Required(ErrorMessage = "请输入{0}")]

        [StringLength(50, ErrorMessage = "{0}】不能超过{1}字符长度")]

        public string RoleName { get; set; }

        /// <summary>

        /// 【角色名称】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统角色的标识。

        /// </remarks>

        /// </summary>

        [Display(Name = "角色标识")]

        [SugarColumn(ColumnDescription = "角色标识", ColumnDataType = "nvarchar", Length = 50, IsNullable = true)]

        [StringLength(50, ErrorMessage = "{0}】不能超过{1}字符长度")]

        public string RoleCode { get; set; }

        /// <summary>

        /// 【角色名称】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统角色的备注。

        /// </remarks>

        /// </summary>

        [Display(Name = "备注")]

        [SugarColumn(ColumnDescription = "备注",  ColumnDataType = "nvarchar", Length = 255, IsNullable = true)]

        [StringLength(255, ErrorMessage = "{0}】不能超过{1}字符长度")]

        public string Comments { get; set; }

        /// <summary>

        /// 【逻辑删除?】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个值false(可用=0)/true(已经被逻辑删除=1),该值指示系统角色实体的1个指定实例是否已经处于逻辑删除状态。

        /// </remarks>

        /// </summary>

        [Display(Name = "是否删除,0,1")]

        [SugarColumn(ColumnDescription = "是否删除,0,1")]

        [Required(ErrorMessage = "请输入{0}")]

        public bool Deleted { get; set; }

        /// <summary>

        /// 【创建时间】

        /// <remarks>

        /// 摘要:

        ///     获取/设置系统角色实体1个指定实例第1次被持久化到系统角色表中的时间。

        /// </remarks>

        /// </summary>

        [Display(Name = "创建时间")]

        [SugarColumn(ColumnDescription = "创建时间")]

        [Required(ErrorMessage = "请输入{0}")]

        public DateTime CreateTime { get; set; }

        /// <summary>

        /// 【修改时间】

        /// <remarks>

        /// 摘要:

        ///     获取/设置系统角色1个指定实例最后1次被修改后,持久化到系统角色表中的时间。

        /// </remarks>

        /// </summary>

        [Display(Name = "修改时间")]

        [SugarColumn(ColumnDescription = "修改时间")]

        public DateTime UpdateTime { get; set; }

    }

}

2 CoreCms.Net.Model.Entities.SysUser

using SqlSugar;

using System.ComponentModel.DataAnnotations;

namespace CoreCms.Net.Model.Entities

{

    /// <summary>

    /// 【系统用户--类】

    /// <remarks>

    /// 摘要:

    ///     通过该实体类及其属性成员,用于实现当前程序【CoreCms.Net.Model.【实体集】.SysUser】实体与“[CoreShop230628].[SysUser]”表之间的CURD的交互操作,并把这些数据存储到数据库设置实例中(内存)

    /// </remarks>

    /// </summary>

    [SugarTable("SysUser", TableDescription = "用户表")]

    public partial class SysUser

    {

        /// <summary>

        /// 【系统用户色编号】

        /// <remarks>

        /// 摘要:

        ///     获取/设置系统角色实体1个指定实例的整型编号值。

        /// IsPrimaryKey:主键

        /// IsIdentit:自增

        /// </remarks>

        /// </summary>

        [Display(Name = "用户id")]

        [SugarColumn(ColumnDescription = "用户id", IsPrimaryKey = true, IsIdentity = true)]

        [Required(ErrorMessage = "请输入{0}")]

        public int Id { get; set; }

        /// <summary>

        /// 【账号】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统用户的账号名称。

        /// </remarks>

        /// </summary>

        [Display(Name = "账号")]

        [SugarColumn(ColumnDescription = "账号", ColumnDataType = "nvarchar", Length = 50, IsNullable = true)]

        [StringLength(50, ErrorMessage = "{0}】不能超过{1}字符长度")]

        public string UserName { get; set; }

        /// <summary>

        /// 【密码】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统用户的登录密码。

        /// </remarks>

        /// </summary>

        [Display(Name = "密码")]

        [SugarColumn(ColumnDescription = "密码", ColumnDataType = "nvarchar", Length = 100, IsNullable = true)]

        [StringLength(100, ErrorMessage = "{0}】不能超过{1}字符长度")]

        public string PassWord { get; set; }

        /// <summary>

        /// 【昵称】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统用户的昵称。

        /// </remarks>

        /// </summary>

        [Display(Name = "昵称")]

        [SugarColumn(ColumnDescription = "昵称", ColumnDataType = "nvarchar", Length = 50, IsNullable = true)]

        [StringLength(50, ErrorMessage = "{0}】不能超过{1}字符长度")]

        public string NickName { get; set; }

        /// <summary>

        /// 【昵称】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统用户的头像。

        /// 说明:

        ///     该属性通过网络格式的绝/相对路径来映射用户头像图片。

        /// </remarks>

        /// </summary>

        [Display(Name = "头像")]

        [SugarColumn(ColumnDescription = "头像", ColumnDataType = "nvarchar", Length = 255, IsNullable = true)]

        [StringLength(255, ErrorMessage = "{0}】不能超过{1}字符长度")]

        public string Avatar { get; set; }

        /// <summary>

        /// 【性别】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统用户的性别。

        /// </remarks>

        /// </summary>

        [Display(Name = "性别")]

        [SugarColumn(ColumnDescription = "性别")]

        [Required(ErrorMessage = "请输入{0}")]

        public int Sex { get; set; }

        /// <summary>

        /// 【手机号】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统用户的手机号。

        /// </remarks>

        /// </summary>

        [Display(Name = "手机号")]

        [SugarColumn(ColumnDescription = "手机号", ColumnDataType = "nvarchar", Length = 50, IsNullable = true)]

        [StringLength(50, ErrorMessage = "{0}】不能超过{1}字符长度")]

        public string Phone { get; set; }

        /// <summary>

        /// 【邮箱】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统用户的邮箱。

        /// </remarks>

        /// </summary>

        [Display(Name = "邮箱")]

        [SugarColumn(ColumnDescription = "邮箱", ColumnDataType = "nvarchar", Length = 50, IsNullable = true)]

        [StringLength(50, ErrorMessage = "{0}】不能超过{1}字符长度")]

        public string Email { get; set; }

        /// <summary>

        /// 【邮箱验证?】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个值false(不需要)/true(需要),该值指示1个指定系统用户是否需要在邮箱验证操作后才能执行登录操作。

        /// </remarks>

        /// </summary>

        [Display(Name = "邮箱是否验证")]

        [SugarColumn(ColumnDescription = "邮箱是否验证")]

        [Required(ErrorMessage = "请输入{0}")]

        public bool EmailVerified { get; set; }

        /// <summary>

        /// 【实名】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统用户的实名。

        /// </remarks>

        /// </summary>

        [Display(Name = "真实姓名")]

        [SugarColumn(ColumnDescription = "真实姓名", ColumnDataType = "nvarchar", Length = 50, IsNullable = true)]

        [StringLength(50, ErrorMessage = "{0}】不能超过{1}字符长度")]

        public string TrueName { get; set; }

        /// <summary>

        /// 【身份证号】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统用户的身份证号。

        /// </remarks>

        /// </summary>

        [Display(Name = "身份证号")]

        [SugarColumn(ColumnDescription = "身份证号", ColumnDataType = "nvarchar", Length = 50, IsNullable = true)]

        [StringLength(50, ErrorMessage = "{0}】不能超过{1}字符长度")]

        public string IdCard { get; set; }

        /// <summary>

        /// 【出生日期】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统用户的生日。

        /// </remarks>

        /// </summary>

        [Display(Name = "出生日期")]

        [SugarColumn(ColumnDescription = "出生日期", IsNullable = true)]

        public DateTime? Birthday { get; set; }

        /// <summary>

        /// 【个人简介】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统用户的个人简介。

        /// </remarks>

        /// </summary>

        [Display(Name = "个人简介")]

        [SugarColumn(ColumnDescription = "个人简介", ColumnDataType = "nvarchar", Length = 500, IsNullable = true)]

        [StringLength(500, ErrorMessage = "{0}】不能超过{1}字符长度")]

        public string Introduction { get; set; }

        /// <summary>

        /// 【机构编号】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统用户的机构编号。

        /// </remarks>

        /// </summary>

        [Display(Name = "机构id")]

        [SugarColumn(ColumnDescription = "机构id", IsNullable = true)]

        public int? OrganizationId { get; set; }

        /// <summary>

        /// 【状态】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个值0(正常)/1 (冻结),该值指示1个指定系统用户是否需要在邮箱验证操作后才能执行登录操作。

        /// </remarks>

        /// </summary>

        [Display(Name = "状态,0正常,1冻结")]

        [SugarColumn(ColumnDescription = "状态,0正常,1冻结")]

        [Required(ErrorMessage = "请输入{0}")]

        public int State { get; set; }

        /// <summary>

        /// 【逻辑删除?】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个值false(可用=0)/true(已经被逻辑删除=1),该值指示系统用户实体的1个指定实例是否已经处于逻辑删除状态。

        /// </remarks>

        /// </summary>

        [Display(Name = "是否删除,0,1")]

        [SugarColumn(ColumnDescription = "是否删除,0,1")]

        [Required(ErrorMessage = "请输入{0}")]

        public bool Deleted { get; set; }

        /// <summary>

        /// 【注册时间】

        /// <remarks>

        /// 摘要:

        ///     获取/设置系统用户实体1个指定实例第1次被持久化到系统用户表中的时间。

        /// </remarks>

        /// </summary>

        [Display(Name = "注册时间")]

        [SugarColumn(ColumnDescription = "注册时间")]

        [Required(ErrorMessage = "请输入{0}")]

        public DateTime CreateTime { get; set; }

        /// <summary>

        /// 【修改时间】

        /// <remarks>

        /// 摘要:

        ///     获取/设置系统用户1个指定实例最后1次被修改后,持久化到系统角色表中的时间。

        /// </remarks>

        /// </summary>

        [Display(Name = "修改时间")]

        [SugarColumn(ColumnDescription = "修改时间", IsNullable = true)]

        public DateTime UpdateTime { get; set; }

    }

}

3 CoreCms.Net.Core.Config.SqlSugarSetup

using Microsoft.Extensions.DependencyInjection;

using SqlSugar;

using SqlSugar.IOC;                  

using System.Reflection;

namespace CoreCms.Net.Core.Config

{

    /// <summary>

    /// SqlSugarCore中间件启动--类】

    /// <remarks>

    /// 摘要:

    ///     通过该类中的方法成员,把SqlSugarCore中间件依赖注入到.Net(Core)框架内置依赖注入容器中。

    /// </remarks>

    /// </summary>

    public static class SqlSugarSetup

    {

        /// <param name="services">.Net(Core)框架内置依赖注入容器实例。</param>

        /// <summary>

        /// 【配置服务】

        /// <remarks>

        /// 摘要:

        ///     通过该方法成员,把SqlSugarCore中间件依赖注入到.Net(Core)框架内置依赖注入容器中。。

        /// </remarks>

        /// </summary>

        public static void AddSqlSugarSetup(this IServiceCollection services)

        {

            if (services == null) throw new ArgumentNullException(nameof(services));

            //注入 ORM

            SugarIocServices.AddSqlSugar(new IocConfig()

            {

                //数据库连接

                /*ConnectionString = AppSettingsConstVars.DbSqlConnection,

                //判断数据库类型

                DbType = AppSettingsConstVars.DbDbType == IocDbType.MySql.ToString() ? IocDbType.MySql : IocDbType.SqlServer,*/

                ConnectionString = "Server=.;uid=zz;pwd=zz;Database=CoreShop230628;MultipleActiveResultSets=true;pooling=true;min pool size=5;max pool size=32767;connect timeout=20;Encrypt=True;TrustServerCertificate=True;",

                DbType = IocDbType.SqlServer,

                //是否开启自动关闭数据库连接-//不设成true要手动close

                IsAutoCloseConnection = true,

            });

            //设置参数

            services.ConfigurationSugar(db =>

            {

                db.CurrentConnectionConfig.InitKeyType = InitKeyType.Attribute;

                //说明:CoreShop的程序是数据库优先,即必须先生成指定的数据库,本人更为喜欢代码优先所以进行了以下定义来实现代码优先。

                //如果指定的数据库软件中不存在指定的数据库,则自动生成该数据库。

                db.DbMaintenance.CreateDatabase();

                //通过反射操作,获取领域文件夹中的所有实体的类型实例。

                //直接获取指定项目中所有类的类型实例。

                Assembly assembly = Assembly.Load("CoreCms.Net.Model");

                //通过过滤操作,获取领域文件夹中的所有实体的类型实例。

                //注意:“Where”过滤操作中“ c.Namespace”最好使用“Contains”,而不要使用“==”

                Type[] _typeArray = assembly.GetTypes()

                    .Where(c => c.Namespace.Contains("CoreCms.Net.Model.Entities") && c.IsClass)//过滤操作。

                    .ToArray();

                //如果数据库软件对自动生成的数据库支持自动备份操作,则通过下行语句在自动生成该数据库中,根据当前项目中的实体类自动生成相应的表。

                //注意:SetStringDefaultLength(stringDefaultLength)必须定义在下行语句中,否则在自动生成表时,该约束定义将不会被映射到表的字段上。

                db.CodeFirst.SetStringDefaultLength(50).BackupTable().InitTables(_typeArray);

            });

        }

    }

}

4 Program.cs

using CoreCms.Net.Core.Config;

var builder = WebApplication.CreateBuilder(args);

//添加数据库连接SqlSugar注入支持

builder.Services.AddSqlSugarSetup();

5 CoreCms.Net.Web.Admin.Controllers.SysRoleController

using Microsoft.AspNetCore.Mvc;

using System.ComponentModel;

using SqlSugar;

using SqlSugar.IOC;

using CoreCms.Net.Model.Entities;

namespace CoreCms.Net.Web.Admin.Controllers

{

    [ApiController]

    [Route("[controller]/[action]")]

    public class SysRoleController : ControllerBase

    {

      private readonly ISqlSugarClient _sqlSugarClient;

        private ISqlSugarClient DbBaseClient;

        public SysRoleController()

        {

            _sqlSugarClient = DbScoped.SugarScope;

        }

        private SqlSugarScope GetDbClient()

        {

            // 必须要as,后边会用到切换数据库操作

            return _sqlSugarClient as SqlSugarScope;

        }

        #region 获取列表============================================================

        [HttpPost]

        [Description("获取列表")]

        public async Task</*AdminUiCallBack*/ bool> GetPageList()

        {

            DbBaseClient = GetDbClient();

          var v = await DbBaseClient

                .Queryable<SysRole>()

                .ToListAsync();

            return true;

        }

        #endregion

    }

}

 

对以上功能更为具体实现和注释见:230725_001CoreShop230628(获取数据库中的数据)。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

力扣 56. 合并区间

题目来源&#xff1a;https://leetcode.cn/problems/merge-intervals/description/ C题解&#xff1a;根据左区间排序&#xff0c;更新每一段的右区间最大值&#xff0c;直到间断。 class Solution { public:static bool cmp(vector<int> & a, vector<int> &a…

小学期笔记——天天酷跑5

效果&#xff1a; -------------------------- 效果&#xff1a; ------------------ 让人物跑起来 效果&#xff1a;&#xff08;此时的人物是运动的&#xff09; ---------------------- 通过键盘控制角色 效果&#xff1a; 人物可以上左右动&#xff0c;自由落体

K8S初级入门系列之二-集群搭建

一、前言 为了更好学习K8S&#xff0c;建议自行搭建一套K8S的环境&#xff0c;目前比较流行的有两种搭建工具&#xff0c;一种是单机版的minkube&#xff0c;一种是集群版的kubeadm。minkube更多是用于实验环境&#xff0c;且单机版隐藏了很多细节&#xff0c;而kubeadm更贴近实…

Vue 3.3 + Vite 4.3 + TypeScript 5+ Element-Plus:从零到一构建企业级后台管理系统(前后端开源)

vue3-element-admin 是基于 vue-element-admin 升级的 Vue3 Element Plus 版本的后台管理前端解决方案&#xff0c;技术栈为 Vue3 Vite4 TypeScript Element Plus Pinia Vue Router 等当前主流框架。 相较于其他管理前端框架&#xff0c;vue3-element-admin 的优势在于一…

红队打靶:Nullbyte打靶思路详解(vulnhub)

目录 写在开头 第一步&#xff1a;主机发现与端口扫描 第二步&#xff1a;Web渗透 第三步&#xff1a;hydra密码爆破 第四步&#xff1a;SQL注入大赏 方法一&#xff1a;手工SQL注入之联合查询 方法二&#xff1a;SQL注入写入一句话木马 方法三&#xff1a;SQL注入写入…

快速了解新一轮Moonbeam Grants申请提案

随着Moonbeam Grant第二期计划的发布&#xff0c;超过12个项目同时提交了生态Grant申请的提案。任何大于25万枚GLMR Grant的申请都将会要求项目在Moonbeam社区治理论坛上发布Grant提案&#xff0c;内容包含项目概览、申请金额、Grant使用方案以及背后的原因等等。 Grant的发放…

【VUE】vue-i18n: Uncaught SyntaxError: Not available in legacy mode

环境 vue ^3.3.4vue-i18n ^9.2.2vite ^4.4.7 问题 在vite脚手架项目当中&#xff0c;使用vue-i18n插件进行国际化多语言时&#xff0c; 报错&#xff1a;Uncaught SyntaxError: Not available in legacy mode 对于这个报错信息&#xff0c;网上大部分的处理方案是&#xff1a…

五,Eureka 第五章

5.3.2 修改pom添加依赖 <dependencies><!--公共部门--><dependency><groupId>cn.bdqn</groupId><artifactId>springcloud-api-commons</artifactId><version>${project.version}</version></dependency><!--e…

js中的数据结构之栈

js中的数据结构之栈 一、定义 栈是一种限定仅在表尾进行插入和删除操作的线性表&#xff0c;遵循后入先出的原则。 二、描述 栈是和列表类似的一种数据结构&#xff0c;也可以说栈就是一种特殊的列表。 栈里面的元素只能通过列表的一端访问&#xff0c;这一端称为栈顶。相…

Electron 学习_BrowserWindow

BrowserWindow创建并控制浏览器窗口(主进程) 条件&#xff1a;在 app 模块 emitted ready 事件之前&#xff0c;您不能使用此模块。 1.在加载页面时&#xff0c;渲染进程第一次完成绘制时&#xff0c;如果窗口还没有被显示&#xff0c;渲染进程会发出 ready-to-show 事件 。 在…

UML/SysML建模工具更新(2023.7)(1-5)有国产工具

DDD领域驱动设计批评文集 欢迎加入“软件方法建模师”群 《软件方法》各章合集 最近一段时间更新的工具有&#xff1a; 工具最新版本&#xff1a;Visual Paradigm 17.1 更新时间&#xff1a;2023年7月11日 工具简介 很用心的建模工具。支持编写用例规约。支持文本分析和C…

微服务入门---SpringCloud(二)

微服务入门---SpringCloud&#xff08;二&#xff09; 1.Nacos配置管理1.1.统一配置管理1.1.1.在nacos中添加配置文件1.1.2.从微服务拉取配置 1.2.配置热更新1.2.1.方式一1.2.2.方式二 1.3.配置共享1&#xff09;添加一个环境共享配置2&#xff09;在user-service中读取共享配置…

k8s deployment(k8s经典版)|PetaExpress

Deployment是什么&#xff1f; Deployment是指在软件开发中将应用程序或系统部署到目标环境中的过程。它包括将代码编译、配置、打包并安装到目标服务器或设备上的步骤。k8s deployment是&#xff08;k8s经典版&#xff09;中用来管理发布的控制器&#xff0c;在开发的过程中使…

实训笔记7.25

实训笔记7.25 7.25笔记一、MapReduce的特殊使用场景1.1 通过MapReduce程序实现多文件Join操作1.1.1 通过在Reduce端实现join操作1.1.2 通过在Map端实现join操作 1.2 MapReduce中的计数器的使用1.2.1 计数器使用两种方式 1.3 MapReduce实现数据清洗 二、MapReduce的OutputFormat…

算法与数据结构(三)--栈

一.栈的基本概念 栈是一种特殊的表&#xff0c;这种表只在表首进行插入和删除操作。 因此&#xff0c;表首对于栈来说具有特殊的意义&#xff0c;称为栈顶。相应的&#xff0c;表尾称为栈底。不含任何元素的栈称为空栈。 栈的修改遵循后进先出的原则&#xff0c;Last In First…

异常报错:The last packet sent successfully to the server was 0 milliseconds ago

本地运行项目&#xff0c;突然报错&#xff0c;日志为&#xff1a; The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.在网上找了一圈&#xff0c;没有找到合适的解决方案。最后猜测问题有…

基于Java+SpringBoot+vue前后端分离在线商城系统设计实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

华为战略方法论:BLM模型之关键任务与依赖关系

内容简介 在 BLM 模型中&#xff0c;执行部分包括四个模块&#xff0c;分别是&#xff1a; 关键任务与依赖关系&#xff1b;组织与绩效&#xff1b;人才&#xff1b;氛围与文化。 详细内容&#xff0c;大家可以参看下面这张图。 这四个模块其实是可以进一步划分成两个关键点…

【LeetCode】300.最长递增子序列

首先分析这个问题&#xff0c;以示例1为例。 已经求得最大递增子序列长度为4&#xff0c;而且该子序列中最后一个数为101&#xff0c; 那么一定存在一个数ai&#xff0c;使得ai以及ai之前的所有数组成的序列中&#xff0c; 最大递增子序列长度为3&#xff0c;而且该子序列中…

Linux环境Arduino IDE中配置ATOM S3

linux选择ubuntu发行版。 硬件设备有多小呢&#xff1a; 功能超级强大。 之前的ROS1和ROS2案例已经全部移植完成并测试结束&#xff08;三轮纯人力校验&#x1f60e;&#xff09;。 官网文档信息非常非常好&#xff1a; https://docs.m5stack.com/zh_CN/quick_start/atoms3…