- 博客(108)
- 资源 (8)
- 收藏
- 关注
原创 使用WSL2技术在Windows子系统中安装Ubuntu并安装docker及docker-compose(图文详细教程)
使用WSL2技术在Windows子系统中安装Ubuntu并安装docker及docker-compose使用WSL2技术在Windows子系统中安装Ubuntu并安装docker及docker-compose使用WSL2技术在Windows子系统中安装Ubuntu并安装docker及docker-compose
2022-09-16 14:44:08
4599
1
原创 REST API Design Rulebook阅读笔记
URI Rules必须使用正斜杠分隔符(/)来表示层次结构关系URI最后不应该有斜杠(/)应该使用连字符(-)来提高URI可读性URI中不应该使用下划线(_)在URI路径中,应该首选小写字母文件扩展名不应该包含在URI中对于API,应该使用一致的子域名,API的完整域名应该添加一个名为api的子域对于客户端开发人员,应该使用一致的子域名表示文档资源的URI应该用单数名词标识一个集合的URI应该用一个复数名词标识资源存储的URI应该用复数名词动
2022-06-21 17:48:45
507
原创 Windows批处理脚本学习(.bat)
Windows批处理脚本学习(.bat)常用文件操作DOS命令变量传递参数条件IF循环FOR组合命令管道命令常用文件操作DOS命令dir 列文件名cd 改变当前目录ren 改变文件名copy 拷贝文件del 删除文件md 建立子目录rd 删除目录deltree 删除目录树format 格式化磁盘edit 文本编辑type 显示文件内容mem 查看内存状况help 显示帮助提示cls 清屏move 移动文件,改目录名more 分屏显示xcopy 拷贝目录和文件echo
2022-05-17 09:48:04
1167
原创 Windows 11 允许远程桌面/远程访问
Windows 11 允许远程桌面打开设置搜索Remote Desktop打开Remote DesktopWindows 11 允许远程访问搜索打开Windows Defender Firewall点击Turn Windows Defender Firewall on or off将Public network settings 选择 Turn off Windows Defender Firewall (not recommended)点击下方OK保存显示如图即可
2022-05-11 14:55:02
1394
原创 MonetDB远程访问配置
MonetDB远程访问配置1. 首先我们应该知道正常启动MonetDB是直接运行安装目录下的M5server.bat文件2. 启动后如下图,这时候直接使用另一台电脑的DBeaver连接会提示连接被拒绝3. 编辑安装目录下的M5server.bat文件,给下面start the real server命令后面加上–set "mapi_listenaddr=all"参数--set "mapi_listenaddr=all"3. 保存文件重新运行M5server.bat,在另一台电脑上使用DB
2022-05-11 14:45:54
376
原创 PostgreSQL远程访问配置
PostgreSQL远程访问配置1. 打开PostgreSQL安装目录下data\pg_hba.conf文件2. 添加如下行host all all 0.0.0.0/0 scram-sha-2563. 保存退出,在另一台电脑上使用DBeaver连接数据库成功
2022-05-11 14:35:49
786
原创 MySQL远程访问配置
MySQL远程访问配置首先你要确定你的电脑可以在其他机器上ping通!!!1. 进入MySQL安装目录下的bin目录(如果配置过环境变量就直接到第二步)2. 在地址栏输入cmd打开命令行窗口(如果配置过环境变量直接Win+R输入cmd回车即可)3. 输入命令mysql -uroot -p回车,然后输入msyql密码,进入mysqlmysql -uroot -p4. 输入命令grant all privileges on *.* to ‘root’@‘%’ identified by ‘pa
2022-05-11 14:28:33
4299
原创 Windows11安装配置PostgreSQL(图文详细教程)
Windows11安装配置PostgreSQL(图文详细教程)1. 访问PostgreSQL官网2. 进入Download PostgreSQL,选择下载Windows x86-64版本,这里我下载的是目前最新的14.2版本3. 使用管理员运行下载的安装包4. 选择Yes5. 会先安装需要的VC++,不用管,等安装完会打开安装界面6. 点击Next7. 根据个人需要可以修改安装目录,这里我改到了D盘的根目录下,修改完后点击Next8. 默认全部勾选,可以根据个人需要取消部分勾选,我选择全部勾选。点击Next
2022-04-22 11:36:08
10877
6
原创 TypeScript学习-22 JavaScript文件类型检查
22 JavaScript文件类型检查JavaScript文件类型检查用JSDoc类型表示类型信息属性的推断来自于类内的赋值语句构造函数等同于类支持CommonJS模块类,函数和对象字面量是命名空间对象字面量是开放的null,undefined,和空数组的类型是any或any[]函数参数是默认可选的由arguments推断出的var-args参数声明未指定的类型参数默认为any在extends语句中:在JSDoc引用中:在函数调用中支持的JSDoc@type转换导入类型@param和@returns@typ
2022-02-07 13:32:29
1260
1
原创 TypeScript学习-21 三斜线指令
21 三斜线指令三斜线指令/// \预处理输入文件错误使用 --noResolve/// \/// \/// \amdModule.tsamdModule.js/// \三斜线指令三斜线指令是包含单个XML标签的单行注释。注释的内容会做为编译器指令使用。三斜线指令仅可放在包含它的文件的最顶端。一个三斜线指令的前面只能出现单行或多行注释,这包括其它的三斜线指令。如果它们出现在一个语句或声明之后,那么它们会被当做普通的单行注释,并且不具有特殊的涵义。/// <reference path="…"
2022-02-07 13:31:40
659
原创 TypeScript学习-20 Mixins
20 MixinsMixins介绍混入示例理解这个例子Mixins介绍除了传统的面向对象继承方式,还流行一种通过可重用组件创建类的方式,就是联合另一个简单类的代码。你可能在Scala等语言里对mixins及其特性已经很熟悉了,但它在JavaScript中也是很流行的。混入示例下面的代码演示了如何在TypeScript里使用混入。后面我们还会解释这段代码是怎么工作的。// Disposable Mixinclass Disposable { isDisposed: boolean;
2022-02-07 13:30:59
175
原创 TypeScript学习-19 装饰器
19 装饰器装饰器介绍装饰器装饰器工厂装饰器组合装饰器求值类装饰器方法装饰器访问器装饰器属性装饰器参数装饰器元数据装饰器介绍随着TypeScript和ES6里引入了类,在一些场景下我们需要额外的特性来支持标注或修改类及其成员。装饰器(Decorators)为我们在类的声明及成员上通过元编程语法添加标注提供了一种方式。Javascript里的装饰器目前处在建议征集的第二阶段,但在TypeScript里已做为一项实验性特性予以支持。注意 装饰器是一项实验性特性,在未来的版本中可能会发生改变。若要启用
2022-02-07 13:29:52
162
原创 TypeScript学习-18 JSX
18 JSXJSX介绍基本用法as操作符类型检查固有元素基于值的元素无状态函数组件类组件属性类型检查子孙类型检查JSX结果类型嵌入的表达式React整合工厂函数JSX介绍JSX是一种嵌入式的类似XML的语法。它可以被转换成合法的JavaScript,尽管转换的语义是依据不同的实现而定的。JSX因React框架而流行,但也存在其它的实现。TypeScript支持内嵌,类型检查以及将JSX直接编译为JavaScript。基本用法想要使用JSX必须做两件事:给文件一个.tsx扩展名启用jsx选项
2022-02-07 12:30:28
1107
原创 TypeScript学习-17 声明合并
17 声明合并声明合并介绍基础概念合并接口合并命名空间命名空间与类和函数和枚举类型合并合并命名空间和类非法的合并模块扩展全局扩展声明合并介绍TypeScript中有些独特的概念可以在类型层面上描述JavaScript对象的模型。这其中尤其独特的一个例子是“声明合并”的概念。理解了这个概念,将有助于操作现有的JavaScript代码。同时,也会有助于理解更多高级抽象的概念。对本文件来讲,“声明合并”是指编译器将针对同一个名字的两个独立声明合并为单一声明。合并后的声明同时拥有原先两个声明的特性。任何数量
2022-02-07 12:29:54
931
原创 TypeScript学习-16 模块解析
16 模块解析模块解析相对 vs. 非相对模块导入模块解析策略ClassicNodeNode.js如何解析模块TypeScript如何解析模块附加的模块解析标记Base URL路径映射利用rootDirs指定虚拟目录跟踪模块解析需要留意的地方使用--noResolveapp.ts常见问题为什么在exclude列表里的模块还会被编译器使用模块解析这节假设你已经了解了模块的一些基本知识请阅读模块文档了解更多信息。模块解析是指编译器在查找导入模块内容时所遵循的流程。假设有一个导入语句import { a
2022-02-07 12:29:16
356
原创 TypeScript学习-15 命名空间和模块
15 命名空间和模块命名空间和模块介绍使用命名空间使用模块命名空间和模块的陷阱对模块使用/// \命名空间和模块关于术语的一点说明: 请务必注意一点,TypeScript 1.5里术语名已经发生了变化。 “内部模块”现在称做“命名空间”。 “外部模块”现在则简称为“模块”,这是为了与 ECMAScript 2015里的术语保持一致,(也就是说 module X { 相当于现在推荐的写法 namespace X {)。介绍这篇文章将概括介绍在TypeScript里使用模块与命名空间来组织代码的方法。我
2022-02-07 12:28:26
218
原创 TypeScript学习-14 命名空间
14 命名空间命名空间介绍第一步所有的验证器都放在一个文件里命名空间使用命名空间的验证器分离到多文件多文件中的命名空间别名使用其它的JavaScript库外部命名空间命名空间关于术语的一点说明: 请务必注意一点,TypeScript 1.5里术语名已经发生了变化。 “内部模块”现在称做“命名空间”。 “外部模块”现在则简称为“模块”,这是为了与 ECMAScript 2015里的术语保持一致,(也就是说 module X { 相当于现在推荐的写法 namespace X {)。介绍这篇文章描述了如
2022-02-04 23:30:02
274
原创 TypeScript学习-13 模块
13 模块模块介绍导出导出声明导出语句重新导出导入导入一个模块中的某个导出内容将整个模块导入到一个变量,并通过它来访问模块的导出部分具有副作用的导入模块默认导出export = 和 import = require()生成模块代码简单示例可选的模块加载和其它高级加载场景使用其它的JavaScript库外部模块外部模块简写模块声明通配符UMD模块创建模块结构指导尽可能地在顶层导出如果仅导出单个class或function,使用export default如果要导出多个对象,把它们放在顶层里导出明确地列出导入的
2022-02-04 23:29:11
594
原创 TypeScript学习-12 迭代器和生成器
12 迭代器和生成器迭代器和生成器可迭代性for..of 语句for..of vs. for..in 语句代码生成目标为ES5和ES3目标为 ECMAScript 2015 或更高迭代器和生成器可迭代性当一个对象实现了Symbol.iterator属性时,我们认为它是可迭代的。一些内置的类型如Array,Map,Set,String,Int32Array,Uint32Array等都已经实现了各自的Symbol.iterator。对象上的Symbol.iterator函数负责返回供迭代的值。for…o
2022-02-04 23:28:25
339
原创 TypeScript学习-11 Symbols
11 SymbolsSymbols介绍众所周知的SymbolsSymbols介绍自ECMAScript 2015起,symbol成为了一种新的原生类型,就像number和string一样。symbol类型的值是通过Symbol构造函数创建的。let sym1 = Symbol();let sym2 = Symbol("key"); // 可选的字符串keySymbols是不可改变且唯一的。let sym2 = Symbol("key");let sym3 = Symbol("key")
2022-02-04 23:27:17
95
原创 TypeScript学习-10 高级类型
10 高级类型高级类型交叉类型(Intersection Types)联合类型(Union Types)类型保护与区分类型(Type Guards and Differentiating Types)用户自定义的类型保护typeof类型保护instanceof类型保护可以为null的类型可选参数和可选属性类型保护和类型断言类型别名接口 vs. 类型别名字符串字面量类型数字字面量类型枚举成员类型可辨识联合(Discriminated Unions)完整性检查多态的this类型索引类型(Index types)
2022-02-04 23:26:04
485
原创 TypeScript学习-09 类型兼容性
09 类型兼容性类型兼容性介绍关于可靠性的注意事项开始比较两个函数函数参数双向协变可选参数及剩余参数函数重载枚举类类的私有成员和受保护成员泛型高级主题子类型与赋值类型兼容性介绍TypeScript里的类型兼容性是基于结构子类型的。结构类型是一种只使用其成员来描述类型的方式。它正好与名义(nominal)类型形成对比。(译者注:在基于名义类型的类型系统中,数据类型的兼容性或等价性是通过明确的声明和/或类型的名称来决定的。这与结构性类型系统不同,它是基于类型的组成结构,且不要求明确地声明。)看下面的例子:
2022-01-29 18:50:34
223
原创 TypeScript学习-08 类型推论
08 类型推论类型推论介绍基础最佳通用类型上下文类型类型推论介绍这节介绍TypeScript里的类型推论。即,类型是在哪里如何被推断的。基础TypeScript里,在有些没有明确指出类型的地方,类型推论会帮助提供类型。如下面的例子let x = 3;变量x的类型被推断为数字。这种推断发生在初始化变量和成员,设置默认参数值和决定函数返回值时。大多数情况下,类型推论是直截了当地。后面的小节,我们会浏览类型推论时的细微差别。最佳通用类型当需要从几个表达式中推断类型时候,会使用这些表达式的类型
2022-01-29 18:49:59
67
原创 TypeScript学习-07 枚举
07 枚举枚举枚举数字枚举字符串枚举异构枚举(Heterogeneous enums)计算的和常量成员联合枚举与枚举成员的类型运行时的枚举反向映射const枚举外部枚举枚举枚举使用枚举我们可以定义一些带名字的常量。使用枚举可以清晰地表达意图或创建一组有区别的用例。TypeScript支持数字的和基于字符串的枚举。数字枚举首先我们看看数字枚举,如果你使用过其它编程语言应该会很熟悉。enum Direction { Up = 1, Down, Left, Right
2022-01-29 18:48:54
183
原创 TypeScript学习-06 泛型
06 泛型泛型介绍泛型之Hello World使用泛型变量泛型类型泛型类泛型约束在泛型约束中使用类型参数在泛型里使用类类型泛型介绍软件工程中,我们不仅要创建一致的定义良好的API,同时也要考虑可重用性。组件不仅能够支持当前的数据类型,同时也能支持未来的数据类型,这在创建大型系统时为你提供了十分灵活的功能。在像C#和Java这样的语言中,可以使用泛型来创建可重用的组件,一个组件可以支持多种类型的数据。这样用户就可以以自己的数据类型来使用组件。泛型之Hello World下面来创建第一个使用泛型的例
2022-01-29 18:48:18
129
原创 TypeScript学习-05 函数
05 函数函数介绍函数函数类型为函数定义类型书写完整函数类型推断类型可选参数和默认参数剩余参数thisthis和箭头函数this参数this参数在回调函数里重载函数介绍函数是JavaScript应用程序的基础。它帮助你实现抽象层,模拟类,信息隐藏和模块。在TypeScript里,虽然已经支持类,命名空间和模块,但函数仍然是主要的定义行为的地方。TypeScript为JavaScript函数添加了额外的功能,让我们可以更容易地使用。函数和JavaScript一样,TypeScript函数可以创建有名
2022-01-29 18:47:20
410
原创 TypeScript学习-04 类
04 类类介绍类继承公有,私有与受保护的修饰符默认为public理解private理解protectedreadonly修饰符参数属性存取器静态属性抽象类高级技巧构造函数把类当做接口使用类介绍传统的JavaScript程序使用函数和基于原型的继承来创建可重用的组件,但对熟悉使用面向对象方式的程序员来讲就有些棘手,因为他们用的是基于类的继承并且对象是由类构建出来的。从ECMAScript 2015,也就是ECMAScript 6开始,JavaScript程序员将能够使用基于类的面向对象的方式。使用Typ
2022-01-29 18:46:39
276
原创 TypeScript学习-03 接口
03 接口接口介绍接口初探可选属性只读属性readonly VS const额外的属性检查接口介绍TypeScript的核心原则之一是对值所具有的结构进行类型检查。 它有时被称做“鸭式辨型法”或“结构性子类型化”。 在TypeScript里,接口的作用就是为这些类型命名和为你的代码或第三方代码定义契约。接口初探下面通过一个简单示例来观察接口是如何工作的:function printLabel(labelledObj: { label: string }) { console.log(la
2022-01-29 18:45:52
168
原创 TypeScript学习-02 变量声明
02 变量声明变量声明变量声明var 声明作用域规则捕获变量怪异之处let 声明块作用域重定义及屏蔽块级作用域变量的获取const 声明let vs. const解构解构数组对象解构属性重命名默认值函数声明展开变量声明变量声明let和const是JavaScript里相对较新的变量声明方式。像我们之前提到过的,let在很多方面与var是相似的,但是可以帮助大家避免在JavaScript里常见一些问题。const是对let的一个增强,它能阻止对一个变量再次赋值。因为TypeScript是JavaScr
2022-01-29 18:44:51
334
原创 TypeScript学习-01 基础类型
01 基础类型基础类型介绍布尔值数字字符串数组元组 Tuple枚举AnyVoidNull 和 UndefinedNeverObject类型断言关于let基础类型介绍为了让程序有价值,我们需要能够处理最简单的数据单元:数字,字符串,结构体,布尔值等。TypeScript支持与JavaScript几乎相同的数据类型,此外还提供了实用的枚举类型方便我们使用。布尔值最基本的数据类型就是简单的true/false值,在JavaScript和TypeScript里叫做boolean(其它语言中也一样)。le
2022-01-29 18:42:53
225
原创 MyBatis学习20210905
MyBatis10 多对一处理10 多对一处理多对一多个学生,对应一个老师对于学生这边而言,关联,多个学生关联一个老师【多对一】对于老师而言,集合,一个老师有很多学生【一对多】测试环境搭建导入lombok新建实体类Teacher,Student建立Mapper接口建立Mapper.xml文件在核心配置文件中绑定注册我们的Mapper接口或者文件!【方式很多,随心选】测试查询是否能够成功...
2022-01-29 18:35:37
549
原创 Windows上安装IntelliJ IDEA最新版图文教程超详细
Windows上安装IntelliJ IDEA最新版图文教程超详细1 下载安装包1.1 访问idea官网:[https://www.jetbrains.com/idea/](https://www.jetbrains.com/idea/)点击Download。1.2 选择UItimate,.exe,点击Download,即可开始下载。2 进行安装2.1 打开下载好的安装包,点击Next2.2 选择安装路径,点击Next2.3 如图勾选,点击Next2.4 点击Install2.5 等待安装2.6 安装完毕后
2021-09-15 18:49:31
2085
原创 记录一道葡萄城的笔试题
题目出处:题目网址:https://www.grapecity.com.cn/career/challenge题目描述:题目:数据可视化编程语言:不限题目描述:有句话是这么说的:“文不如表,表不如图”。形象地描述了图表在传达信息时,给接收者带来的截然不同的效率和体验。因此,在计算机计算能力、数据规模和决策需求都不断提升的当下,数据可视化的应用也越来越普遍。数据可视化的范围很广,涉及到数据的获取、加工、建模、图形学,人机交互等很多概念和领域,想更快上手,获得更好的体验,使用Dra
2021-09-04 17:12:32
958
原创 MyBatis学习20210904
MyBatis8 注解开发8.1 面向接口编程8.2 使用注解开发8 注解开发8.1 面向接口编程之前学习的是面向对象编程,同时也学习了接口,但在真正的开发中,很多时候我们会选择面向接口编程根本原因:解耦,可拓展,提高复用,分层开发中,上层不用管具体的实现,大家都遵守共同的标准,使得开发变得容易,规范性更好在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种情况下,各个对象内部是如何实现自己的,对系统设计人员来讲就不那么重要了而各个对象之间的协作关系则成为系统设计的关
2021-09-04 16:50:04
73
原创 MyBatis学习20210827
MyBatis6 日志6.1 日志工厂6.2 Log4j7 分页7.1 使用limit分页7.2 使用Mybatis实现分页,核心SQL7.3 RowBounds分页【了解】7.4 分页插件6 日志6.1 日志工厂如果一个数据库操作,出现了异常,我们需要排错。日志就是最好的助手!曾经:sout、debug现在:日志工厂SLF4JLOG4J【掌握】LOG4J2JDK_LOGGINGCOMMONS_LOGGINGSTDOUT_LOGGING【掌握】NO_LOGGING在Mybat
2021-08-27 16:21:15
58
原创 MyBatis学习20210825
MyBatis4 配置解析4.1 核心配置文件4.2 环境配置(environments)4.3 属性(properties)4.4 类型别名(typeAliases)4 配置解析4.1 核心配置文件mybatis-config.xmlMyBatis的配置文件包含了会深深影响MyBatis行为的设置和属性信息。configuration(配置)properties(属性)settings(设置)typeAliases(类型别名)typeHandlers(类型处理器)objectFac
2021-08-25 15:25:07
63
1
原创 使用VMware安装CentOS7虚拟机
使用VMware安装CentOS7虚拟机1 安装前准备2 安装CentOS 72.1 打开VMware软件,点击创建新的虚拟机,打开新建虚拟机向导2.2 选择自定义(高级),点击下一步2.3 选择Workstation 15.x,点击下一步2.4 选择稍后安装操作系统,点击下一步2.5 客户机操作系统选择Linux,版本选择CentOS 7 64位,点击下一步2.6 修改虚拟机名称,和虚拟机存储路径后点击下一步2.7 虚拟机处理器数量和内核数量都选择2,点击下一步2.8 选择虚拟机内存为1GB,点击下一步2
2021-08-16 16:07:50
104
原创 MyBatis学习20210816
MyBatis3 CRUD3.1 namespace3.2 select3.3 insert3.4 update3.5 delete3.6 万能Map对象3.7 模糊查询3 CRUD3.1 namespacenamespace中的包名要和Dao/mapper接口的包名一致3.2 select选择/查询语句id:就是对应的namespace中的方法名resultType:SQL语句执行的返回值parameterType:参数类型编写接口 //根据ID查询用户 User ge
2021-08-16 15:30:07
106
原创 MyBatis学习20210811
MyBatis1 简介1.1 什么是MyBatis?1.2 如何获得MyBatis?1.3 持久化1.4 持久层1.5 为什么需要MyBatis?2 第一个MyBatis程序2.1 搭建环境2.2 创建一个模块2.3 编写代码2.4 测试1 简介1.1 什么是MyBatis?MyBatis 是一款优秀的持久层框架。它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映
2021-08-11 17:27:34
63
原创 在linux的centos7上安装mysql5.7
在linux的centos7上安装mysql5.7一、安装mysql5.7二、开启防火墙三、卸载linux上的mysql当时安装mysql5.7遇到很多问题,网上解决办法都不对,记录下来自己安装成功的安装步骤及注意事项一、安装mysql5.71 更新yum本地缓存yum clean cacheyum makecache2 查看系统中是否已安装mysqlyum list installed | grep mysql3 卸载系统自带的mysql及其依赖(防止冲突)yum -y remove
2021-08-11 12:22:43
128
Linux 内核更新包 wsl_update_x64
2022-09-16
期末大作业 我的web网站
2021-12-19
AmaterasUML_1.3.4.rar
2020-09-04
Titanic生存预测数据集.rar
2020-08-15
2020.01.14resume.rar
2020-07-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人