2022.4.9-12工作总结

SQL操作与API映射:优化、整洁代码与技术细节解析
本文介绍了如何在数据库中添加列、API映射中的HTTP动词运用,以及代码优化技巧如Result泛型使用。内容涵盖了集合判断、JDK11新特性、实体类设计、saveOrUpdate操作、参数验证,以及SQL语句调整和BeanUtils替代。

1.在原有表中插入列

alter table 表名 add 列名 varchar(30) unsigned NOT NULL DEFAULT '0' COMMENT '逻辑删除 1(true)已删除, 0(false)未删除',;

2.疑问:

@getmapping,@deletemapping @postMaping @putMaping

这些与@requestbody,@parthvariable @requestParam的关系

1.GET 查询操作
2.DELETE 删除操作 get/delete 用法相同

3.POST 1.表单数据提交 2.新增操作 4.PUT 修改操作 post/put 用法相同

这个也不是绝对的,譬如,如果是带条件分页查询,这个时候我们必须要传DTO那就只能用PostMaping

3.判断集合为空的方法:

idList==null&&idList.isEmpty()

图片为空:

images != null && images.size() > 0

4.JDK11新特性

(1)var,可以预判段类型,不是真的关键字

(2)List.of约等于Arrays.list(创建之后不能再添加)

5.sql文件没有保存到本地,这就使得在物理机挂了的时候,sql表格不一样又要重新输入

6.代码整洁与优化,Result分页加泛型;

7.报错:check the manual that corresponds to your MySQL server version for the right syntax to use near

因为列表中有列出现了sql的关键字,解决的方法如下:

    @TableField(value = "`key`")
    private String key;

8.beanUtils的替代方案

package com.weareint.entity;

import com.weareint.basic.entity.BasicEntity;
import com.weareint.basic.utils.DateUtil;
import com.weareint.dto.SysDicDTO;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * 字典(SysDic)实体
 *
 * <p>weareint 2022-04-08 10:50:24
 */
@EqualsAndHashCode(callSuper = true)
@Data
@Accessors(chain = true)
public class SysDic extends BasicEntity {
    /** 字典名称 */
    private String name;
    /** 字典类型 */
    private String type;
    /** 描述 */
    private String description;
    /** 状态 */
    private Boolean status;
    /** 删除 */
    private Integer delFlag;

    public SysDicDTO toDTO() {
        SysDicDTO dto = new SysDicDTO();
        dto.setId(this.getId());
        dto.setName(this.getName());
        dto.setDelFlag(this.getDelFlag());
        dto.setStatus(this.getStatus());
        dto.setCreateTime(
                null == this.getCreateTime() ? "" : DateUtil.format(this.getCreateTime()));
        dto.setUpdateTime(
                null == this.getUpdateTime() ? "" : DateUtil.format(this.getUpdateTime()));
        dto.setCreateUserId(this.getCreateUserId());
        dto.setUpdateUserId(this.getUpdateUserId());
        dto.setType(this.getType());
        dto.setDescription(this.getDescription());
        return dto;
    }
}

9.saveorupdate的使用

它只传入一个实体对象,当你的实体中的主键为null时,他就会执行insert操作,当你的主键不为空时,它就会执行updata操作

10.校验参数异常

        if (id == null) {
            throw new IllegalArgumentException("参数为空,无法删除");
        }

<think>我们被要求安装MicrosoftVisualStudio2022BuildTools,并通过命令行参数添加VC++工具工作负载(Microsoft.VisualStudio.Workload.VCTools)。根据引用内容,我们可以通过多种方式安装,但用户特别提到了使用winget命令和覆盖参数,以及使用下载的安装程序通过命令行参数安装。根据引用[1],我们可以使用winget命令来安装,并指定所需的组件:wingetinstallMicrosoft.VisualStudio.2022.BuildTools--force--override"--wait--passive--addMicrosoft.VisualStudio.Workload.VCTools--addMicrosoft.VisualStudio.Component.VC.Tools.x86.x64--addMicrosoft.VisualStudio.Component.Windows11SDK.22000"但是,注意引用[1]中给出的命令是针对BuildTools的,并且添加了多个组件。用户要求添加的是Microsoft.VisualStudio.Workload.VCTools(这是C++工作负载),同时我们还可以根据需要添加其他组件。另外,引用[2]和引用[3]展示了如何通过离线安装程序进行安装,但用户没有要求离线安装,所以我们优先使用winget在线安装。如果用户希望阻止安装程序访问互联网(离线安装),则可以使用引用[2]的方法,先下载安装程序,然后使用`--noWeb`参数,但用户没有明确要求离线,所以我们提供在线安装方法。步骤:1.打开一个具有管理员权限的终端(命令提示符或PowerShell)。2.执行winget命令(需要事先安装winget,Windows101809之后版本默认包含,或者从MicrosoftStore安装)。但是,注意引用[1]中的命令还添加了两个额外的组件(VC.Tools.x86.x64和Windows11SDK.22000)。如果用户只需要工作负载VCTools(它已经包含了一些默认组件),那么我们可以只添加工作负载。但通常,添加工作负载VCTools会包含必要的VC++工具,但可能不包含特定版本的WindowsSDK,所以我们可以根据需要添加。用户问题中只要求添加Microsoft.VisualStudio.Workload.VCTools,所以我们可以简化命令为:wingetinstallMicrosoft.VisualStudio.2022.BuildTools--force--override"--wait--passive--addMicrosoft.VisualStudio.Workload.VCTools"但引用[1]中给出的命令还添加了其他两个组件,这可能是为了确保获得完整的工具链。因此,我们可以根据用户的需求选择:如果用户需要完整的C++开发工具,包括最新版本的VC++编译器和Windows11SDK,那么可以使用引用[1]的命令。如果用户只需要基本的工作负载,则只添加VCTools。考虑到用户可能希望获得完整的C++开发环境,建议采用引用[1]的命令,因为它还包含了x86和x64的VC++工具以及Windows11SDK22000。因此,我们推荐以下命令:wingetinstallMicrosoft.VisualStudio.2022.BuildTools--force--override"--wait--passive--addMicrosoft.VisualStudio.Workload.VCTools--addMicrosoft.VisualStudio.Component.VC.Tools.x86.x64--addMicrosoft.VisualStudio.Component.Windows11SDK.22000"注意:`--force`参数强制覆盖可能已存在的安装,`--override`用于传递参数给安装程序。安装程序的参数包括:`--wait`(等待安装完成而不是立即退出),`--passive`(显示进度条但不要求交互),以及`--add`用于添加组件。另外,引用[4]提供了一个vsconfig文件,其中列出了多个组件,这可以作为参考,但用户要求通过命令行参数添加,所以我们不使用配置文件。如果用户没有winget,可以先安装winget(从MicrosoftStore安装“应用安装程序”)。如果用户希望使用下载的安装程序进行安装(例如为了离线安装或更多控制),可以按照引用[2]或引用[3]的方法,但用户问题中并没有要求离线,所以我们优先使用winget。总结步骤:1.以管理员身份打开PowerShell或命令提示符。2.执行上述winget命令。安装完成后,用户就可以使用MSVC编译器了。注意:安装过程可能需要一段时间,且需要网络连接。另外,如果用户需要其他组件,可以根据引用[4]的附件2中的组件列表进行添加,但用户目前只要求VCTools工作负载,所以我们按照要求添加。但是,由于工作负载VCTools本身已经包含了一些必要的组件(如VC++核心工具、MSBuild等),所以只添加工作负载可能就足够了。但为了确保包含最新的VC++工具和WindowsSDK,我们按照引用[1]添加了额外的两个组件。因此,我们给出两种选择:选择一(基本安装):wingetinstallMicrosoft.VisualStudio.2022.BuildTools--force--override"--wait--passive--addMicrosoft.VisualStudio.Workload.VCTools"选择二(包含最新VC++工具和Windows11SDK22000,推荐):wingetinstallMicrosoft.VisualStudio.2022.BuildTools--force--override"--wait--passive--addMicrosoft.VisualStudio.Workload.VCTools--addMicrosoft.VisualStudio.Component.VC.Tools.x86.x64--addMicrosoft.VisualStudio.Component.Windows11SDK.22000"我们推荐选择二,因为它更完整。最后,我们生成相关问题。</think>### 安装 Microsoft Visual Studio 2022 Build Tools 步骤指南 #### 一、通过 winget 命令行安装(推荐) 1. **打开管理员权限终端** ```powershell # Windows 搜索栏输入 PowerShell # 右键选择 "以管理员身份运行" ``` 2. **执行安装命令** ```powershell winget install Microsoft.VisualStudio.2022.BuildTools --force --override ` "--wait --passive ` --add Microsoft.VisualStudio.Workload.VCTools ` --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 ` --add Microsoft.VisualStudio.Component.Windows11SDK.22000" ``` **关键参数说明**: - `--force`:强制覆盖现有安装 - `--passive`:无交互式安装(进度条可见) - `--add`:添加指定工作负载[^1] - `Microsoft.VisualStudio.Workload.VCTools`:核心C++开发工具集 - `VC.Tools.x86.x64`:x86/x64平台编译工具 - `Windows11SDK.22000`:Windows 11 SDK(版本22000) #### 二、通过离线安装程序安装(无网络环境) 1. **下载安装程序** ```powershell Invoke-WebRequest -Uri "https://aka.ms/vs/17/release/vs_BuildTools.exe" -OutFile vs_BuildTools.exe ``` 2. **执行离线安装** ```powershell .\vs_BuildTools.exe --noWeb --add Microsoft.VisualStudio.Workload.VCTools --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 --includeRecommended ``` - `--noWeb`:禁用网络访问(使用本地缓存)[^2] - `--includeRecommended`:包含推荐组件 #### 三、验证安装 1. **检查安装目录** - 默认路径:`C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools` - 验证关键组件: - VC编译器:`VC\Tools\MSVC\<版本>\bin\Hostx64\x64\cl.exe` - SDK工具:`Windows Kits\10\bin\10.0.22000.0\x64\rc.exe` 2. **命令行测试编译** ```powershell # 创建测试文件 echo #include `<iostream>` > test.cpp echo int main() { std::cout << "Success!"; } >> test.cpp # 使用MSVC编译 cl /EHsc /std:c++17 test.cpp ``` 成功输出应生成 `test.exe` 文件 #### 四、环境配置建议 1. **PATH环境变量设置** ```powershell # 添加至系统PATH $vsPath = "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build" [Environment]::SetEnvironmentVariable("PATH", "$env:PATH;$vsPath", "Machine") ``` 2. **CMake集成配置** ```cmake # CMakeLists.txt 中指定MSVC set(CMAKE_GENERATOR_TOOLSET "v143") set(CMAKE_CXX_COMPILER "cl.exe") ``` > **注意**:安装完成后建议重启系统以确保环境变量生效[^1]。若需完整C++开发环境,可补充安装 Windows SDK 和 CMake 工具。 --- ### 相关问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值