学习大数据DAY17 PLSQL基础语法6和Git的基本操作

目录

存储过程调试功能

作业

阶段复习作业

Git课程目录

什么是版本控制

没有版本控制的缺点

常见的版本工具

版本控制分类

1. 本地版本控制

2. 集中版本控制

3. 分布式版本控制

Git与SVN主要区别

Git软件安装及配置

Windows系统安装Git

安装Tortoise Git(乌龟Git可视化操作工具)

Git服务器和远程仓库操作

从服务器克隆仓库

1. https方式

2. ssh方式克隆

推送和拉取

七、分支创建与合并

冲突

忽略

版本回退

子模块

子Issue和request

教学视频点击查看:


包由两部分组成:规范部分和包体部分

包格式

create or replace package 包名

is

procedure 存储过程名[(形参 in|out|in out 数据类型,...)];

function 函数名(形参 数据类型) return 返回值类型;

end [包名];

包的实现(包体):

create or replace package body 包名

is

procedure 存储过程名[(形参 in|out|in out 数据类型,...)]

is

begin

实现代码;

end;

create or replace package hh

is

procedure h1(c in number);

procedure h2;

end;

create or replace package body hh

is

procedure h1(c in number)

is

begin

dbms_output.put_line(c);

end;

procedure h2

is

begin

dbms_output.put_line('啥也没有');

end;

end;

begin

hh.h1(5);

hh.h2();

end;

存储过程调试功能

--调试权限开启,system登录开启

GRANT debug any procedure, debug connect session TO scott;

--对着调试的存储过程右键选中添加调试信息

--对着调试的存储过程右键测试,点击启动调试器,单步进入,进到内容后可以添加变量查看,可以看输出

作业

/*写一个包,包含两个存储过程。分别实现菱形和三角形输出过程,三角形可以根据输入行数来输出。*/create or replace package baoisprocedure leng(n in out number);procedure triangle(m in out number);end;create or replace package body baoisprocedure leng(n in out number)isbeginfor i in 1 .. nloopfor j in 1 .. n+i-1loopif j<n-i+1 thendbms_output.put(' ');elsedbms_output.put('*');  end if;end loop;dbms_output.put_line(null); end loop;for k in 1 .. n-1loopfor m in 1 .. 2*n-k-1loopif m<k+1 thendbms_output.put(' ');elsedbms_output.put('*');  end if;end loop;dbms_output.put_line(null); end loop;end; procedure triangle(m in out number)isbeginfor i in 1 .. mloopfor j in 1 .. m+i-1loopif j<m-i+1 thendbms_output.put(' ');elsedbms_output.put('*');  end if;end loop;dbms_output.put_line(null); end loop;end;end;declarem number(5):=&输入行数;beginbao.leng(m);bao.triangle(m);end;select * from income;


阶段复习作业

--1、编写一个函数,根据物品id,和折扣,返回物品的单个利润create or replace function lirun(idd in varchar2,idiscount in number)return numberislr income.allprice%type;beginselect sum(allprice-inprice*sl) into lrfrom income left join goods on goodsid=g_idwhere goodsid=idd and discount=idiscount;if lr is null thendbms_output.put_line('没有这个物品id!');end if;return lr;  end;select lirun(6,0.8) from dual;--验证select lirun(18,0.1) from dual;--2、编写一个程序段,打印出当前的所有库存,相同的物品只展示一行,打印名称和数量create or replace procedure allstockistype names is record(g_name goods.g_name%type,sl stock.sl%type);a names;yb sys_refcursor;beginopen yb forselect g_name,sum(sl)from goods left join stock on g_id=goodsidgroup by g_name;fetch yb into a;while yb%foundloopdbms_output.put_line(a.g_name||'   '||a.sl); fetch yb into a;end loop;close yb; end;call allstock();--验证--3、编写一个存储过程,实现进货过程,接受一个物品id,物品数量create sequence onidstart with 3increment by 1;create or replace procedure ingoods(idd in varchar2,sll in number)isbeginupdate stock set sl=sl+sll,intime=sysdate,productime=sysdate where goodsid=idd;insert into oncome(o_id,goodsid,stockid,sl,allprice)select inid.nextval,goodsid,s_id,sll,inprice*sllfrom stock left join goods on goodsid=g_idwhere goodsid=idd;end;call ingoods(9,100);--验证select * from oncome;select * from stock;commit;--4、编写一个存储过程,遍历删除库存中过期的物品,(更新为零操作)create or replace procedure ClearStockisbeginupdate (select * from stock left join goods on goods.g_id=stock.goodsid)set sl=0 where productime+qualitydate<sysdate;end;call ClearStock();--验证select * from stock;rollback;--5、(拓展)编写一个存储过程,实现出货过程,接受物品id,物品数量,折扣create sequence inidstart with 4increment by 1;create or replace procedure SellGoods(idd in income.goodsid%type,ssl in income.sl%type,idiscount in income.discount%type)isbeginupdate stock set sl=sl-ssl where goodsid=idd;insert into income(i_id,goodsid,stockid,sl,discount,allprice)select inid.nextval,goodsid,s_id,ssl,idiscount,outprice*sslfrom stock left join goods on goodsid=g_idwhere goodsid=idd;end;call SellGoods(18,10,0.9);--验证select * from income;/*额外要求1.判断有没有要输入的物品2.判断库存有没有足够的数量3.再根据生产日期,先卖出生产日期早的产品,再卖出生产日期晚的产品,4.如果卖出物品后库存为零,则删除库存记录(更新为零操作),如果库存大于零,则更改库存数量5.在出货记录表添加相应记录*/

Git课程目录

●Git介绍

●工具介绍

●版本控制分类

●Git软件安装及配置

●创建本地仓库和git基本概念

●Git服务器和远程仓库操作

么是版本控制

版本控制(Version Control)是一种记录一个或多个文件内容变化,以便将来查阅特定版本修订情况的系统。它可以帮助开发者和团队协同工作,追踪和管理代码(或其他任何类型文件)的变更。版本控制系统通常具有以下功能:

1. 记录追踪项目文件和管理变更,清晰溯源历史记录

2. 实现跨区域多人协同开发

3. 代码备份和恢复

4. 协同代码审查,确保代码质量

5. 支持分支处理和合并回主代码库,保持项目稳定性

6. 提高开发效率

7. 保障代码安全

8. 支持项目管理

没有版本控制的缺点

没有进行版本控制或者版本控制本身缺乏正确的流程管理,在软件开发过程中将会引入很多问题,如软件代码的一致性、软件内容的冗余、软件过程的事物性、软件开发过程中的并发性、软件源代码的安全性,以及软件的整合等问题

常见的版本工具

1. Git:它是一个开源的分布式版本控制系统,可以高效、快速地处理从小型到大型项目的版本管理,与许多流行的开发工具和平台都有良好的集成

2. SVN(Subversion):SVN 是一个集中式的版本控制系统,旨在替代 CVS。它采用客户端/服务器架构,通过中心仓库来管理代码版本,支持跨平台使用

3. CVS(Concurrent Versions System):集中式版本控制系统:所有版本信息都存储在中央仓库中,用户通过客户端软件与中央仓库进行交互。适用适合小型项目和个人开发者。

4. VSS(Micorosoft Visual SourceSafe):微软早期推出的一款管理工具,VSS采用中央仓库来管理代码版本,用户通过客户端软件与中央仓库进行交互。目前已被其他主流控制工具替代

5. TFS(Team Foundation Server): TFS是一个全面的团队协作平台,它提供了版本控制、项目管理、工作项跟踪、自动化构建和测试管理等一系列功能。与Visual Studio紧密集成,提供了无缝的协作体验。

版本控制产品非常的多(Perforce、Rational ClearCase、RCS(GNU Revision

Control System)、 Serena Dimention、SVK、BitKeeper、Monotone、Bazaar、

Mercurial、SourceGear Vault),现在影响力大且使用广泛的是Git与SVN 

版本控制分类

1. 本地版本控制

记录文件每次的更新,可以对每个版本做一个快照,或是记录补丁文件,适合个人用,如RCS。

2. 集中版本控制

所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改,用户的本地只有自己以前所同步的版本,如果不连网的话,用户就看不到历史版本,也无法切换版本验证问题,或在不同分支工作。而且,所有数据都保存在单一的服务器上,有很大的风险这个服务器会损坏,这样就会丢失所有的数据,当然可以定期备份。代表产品:SVN、CVS、VSS

3. 分布式版本控制

所有版本信息仓库全部同步到本地的每个用户,这样就可以在本地查看所有版本历史,可以离线在本地提交,只需在连网时push到相应的服务器或其他用户那里。由于每个用户那里保存的都是所有的版本数据,只要有一个用户的设备没有问题就可以恢复所有的数据,但这增加了本地存储空间的占用。


Git与SVN主要区别

SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而工作的时候,用的都是自己的电脑,所以首先要从中央服务器得到 新的版本,然后工作,完成工作后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,对网络带宽要求较高。

Git是分布式版本控制系统,没有中央服务器,每个人的电脑就是一个完整的版本库,工作的时候不需要联网了,因为版本都在自己电脑上。协同的方法是这样的:比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

Git是目前世界上 先进的分布式版本控制系统。

Git软件安装及配置

Windows系统安装Git

1. Git官网地址:https://git-scm.com/

2. 傻瓜式一直下一步,选择路径的时候尽量不要默认C盘

3. 安装好后右键如果出现这两个东西,那么Git就安装成功了 

安装Tortoise Git(乌龟Git可视化操作工具)
  1. 打开IP网址:https://download.tortoisegit.org/tgit/

2. 先安装工具包,一直下一步,最后一个安装窗口记得勾上(run frst start )选项。

3. 小乌龟工具包安装完后,接着安装小乌龟语言汉化包,也是无脑下一步,最后一步的时候勾选使用语言提示按钮,最后点击完成即可。

4. 下一步更新切换成中文

5. 填写用户名和邮箱地址(这是非常重要的,因为每次Git提交都会使用该信息。它被永远的嵌入到了你的提交中)

6. 选择服务端open ssh

7. 完成安装后在桌面右键可以看到下图的三个功能选择按钮即可

注:如果在安装过程中没有打开配置向导(语言选择)可在安装好小乌龟后右

键--TortoiseGit(T)--常规设置--重新运行首次启动选项--语言(选择中文)

恭喜你完成软件的安装啦!!! 

创建本地仓库和git基本概念

右键--git bash here--命令窗口(一般在对应工作区右键打开)

1. git init:创建本地仓库

2. 仓库区和工作区

①.git文件夹为仓库区:类似于一个数据存储着每一次提交的变化

②.git所在目录称为工作区,我们在这里创建项目和其他文件

3. git.add<文件名>:把文件添加到暂存区,暂存区存储将要被提交的文件变化

4. commit -m “创建a.txt文件”:提交暂存区存储变化并生成一个新的版本

5. git status:查看命令状态

6. git log:查看日志

git的工作流程一般是这样的: 

1. 在工作目录中添加、修改文件;

2. 将需要进行版本管理的文件放入暂存区域;

3. 将暂存区域的文件提交到git仓库。

因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)以上是使用git bash here命令窗口的操作,我们再用小乌龟做一遍这些操作

1. 创建仓库:打开对应文件夹,右键在这里创建版本库

2. 创建好后在工作区新建一个TXT文档,右键git提交,提交窗口注意填写日志文件并勾选所要提交的文件。(修改同上操作)

3.小乌龟查看日志:右键TortoiseGit(T)--查看日志,可以看到对应操作和版本号


Git服务器和远程仓库操作

使用服务器的好处可多人协同开发。

1. 可以自己搭建git服务器(目前阶段暂不需要操作)

2. 免费服务器:

①github.com 全球最大开源项目托管平台 https://github.com/

②Gitee.com 国内知名开源项目托管平台 码云 https://gitee.com

3. 注册gitee账号,并创建仓库

4. 创建仓库:登陆账号--右上角(+)新建仓库--私有(上传代码需要账号密码)--选择语言--.gitignore忽略文件--开源许可证选MIT--readme初始化 这样就创建好一个仓库了 

从服务器克隆
1. https方式

①第一次克隆需要我们输入账号密码

操作流程如下:

打开码云平台,进入仓库界面,点击克隆/下载按钮 

在弹出界面复制https的ip地址

找到需要克隆仓库的文件夹位置,右键打开git bash here在弹出的对话窗口输入

2.命令git clone 粘贴复制的https地址(复制方法:shift+insert键,也可以右键选择paste)克隆成功后的界面显示如下图:

2. ssh方式克隆

ssh是一种开源非对称加密通信协议

②ssh是一种协议,有开源实现也有商业实现,git默认使用开源实现的openssh

③ssh通信需要一对密钥(公和私一对),私钥留在自己电脑上,公钥给其他的电脑

④使用gitgui生成密钥,并把公钥放在服务器上

⑤安装完第一次克隆会请求是否允许使用ssh,需要我们输入一个”yes”

生成密钥右键打开git gui here---help--show ssh key,在弹出窗口点击 generate key, 在弹出的密码窗口点击OK

生成的密钥文件地址为下图 ’~’波浪线代表用户目录下

注:公钥和私钥都可直接删除

把公钥放到服务器上,复制公钥

打开码云服务器,点击账号头像,在下拉框点击设置,左侧下拉找到ssh公钥点击

粘贴完后需要再弹出框中输入密码,密码就是登陆网站设置的密码,公钥的作用一是加密通讯,二是做用户的权限认证

在文件夹下右键打开小乌龟或者bash here都行,这里以小乌龟为例,打开git克隆URL地址会自动获取在服务器上复制的ssh的地址,确定就完成了克隆了

推送和拉取

目的是把自己本地的代码更新到服务器仓库,或拉取由其他同学更新后服务器仓库的代码到自己本地库,做到代码实时更新和共享

1. git add:添加(使用小乌龟勾选add即可)

2. Commit:提交。提交值提交到本地仓库,需要推送才会把变化更新到服务器仓库

3. Push:推送。若服务器版本比我们新,也就是你拉取代码后有同事跟新了代码,你没有再拉取就推送是不成功的,需要再重新拉取一次再推送。

4. Pull:拉取。拉取时确保工作区整洁

以下是小乌龟演示新建后修改文件后在工作区文件夹下右键提交

新建后修改文件后在工作区文件夹下右键提交

在弹出框填写日志信息,一般文件会自动勾选,若未自动勾选则手动勾选对应文件,点提交按钮

提交成功后在弹出的提示窗口点推送,推送弹出窗口直接确定即可

注意:在平台上的邮箱设置要设置成公开的,不然推送不成功

推送后在服务器上可以看到更新后的信息了,以此推送完成

拉取(模拟一个同事B克隆仓库,在B的仓库区新建一个新的文本,此时A想要看B的代码则需要B将文本推送到服务器,A做拉取动作,对齐服务器),在工作区右键点击TortoiseGit(T)--拉取

七、分支创建与合并

1. master是仓库的主分支,为了避免开发过程中程序员之间相互影响,我们一般选择创建一个新的分支来开发新功能

2. 创建分支

3. 切换分支

4. 合并分支

创建分支:在.git文件夹下右键点击TortoiseGit(T)--创建分支---点击“确定”即可切换分支:在.git文件夹下右键点击TortoiseGit(T)--切换/检出--弹出框分支按钮处下拉选择需要更换的分支即可

外一种切换分支方法:在.git文件夹下右键点击TortoiseGit(T)--版本分支图

以上完成分支切换尝试切换完分支后在dev分支上对任意一个文件做个修改保存提交,然后看看版本分支图

合并分支:先在dev分支上对文件做出修改,切换到主分支,在.git文件目录右键点击TortoiseGit(T)--选择“合并分支”在弹出框选择需要合并的分支点击“确定”即可

完成后请查看版本分支图

冲突

1. 冲突如何产生的

①两个分支修改了同一个文件,合并的时候会发生冲突(和我们用的事务死锁一个原理)

2. 如何解决冲突

①协商修改冲突位置,并重新提交

3. 如何减少冲突

①先pull再修改

②确保自己正在修改的文件是最新版本的

③各自开发各自的模块,如果要修改公共文件,最好选确认有没有人正在修改

④不要擅自修改同事的代码

模拟冲突:先切换master主分支修改一个文件并提交,后在dev分支上修改同一个文件并提交,再将dev合并到master主分支上,会出现一个报错。

解决冲突:先点击确定,打开修改文件,重新修改后保持,重新提交

右键报错文件(标红文件)在选项框中点击“解决”,确定提交即可。

也可用小乌龟自带解决方法处理

合并报错点击“解决”:

右键报错文件(标红文件)在选项框中点击“解决”,确定提交即可


修改完后重新提交即可 

忽略

1. 有些时候我们不想把某些文件纳入版本控制中,比如数据库文件,临时文件,设计

文件等在主目录下建立".gitignore"文件

-- # :为注释

-- .txt:忽略所有.txt结尾得文件(忽略文件)

-- !lib.txt:lib.txt除外

-- /temp:仅忽略项目根目录下的TODO文件,不包括其他目录temp

-- build/:忽略build/目录下的所有文件

-- doc/.txt:忽略doc/notes.txt但不包括doc/server/arch.txt

-- !*.文件名:反忽略文件 

-- !A/:反忽略文件夹

操作步骤:先删掉 .git目录下的.gitignore文件夹,在工作区右键点击git bash here 打开对话框,输入touch .gitignore 即可重建一个忽略文件

不忽略文件夹则在不需要忽略的文件目录下右键点击git bash here 打开对话框,输入touch .gitignore 即可重建一个忽略文件,修改里面的内容为!*.文件类型,反忽略。

空文件夹会被自动忽略

版本回退

在版本日志界面选择一个节点,使用重置(reset)命令:先了解一下以下概念

Head:当前分支的引用指针(重置就是移动head这个指针)

Index: 就是缓存区(add的,也可以说是将要提交的文件快照)

工作区:.git所在的目录以及子目录

方法:右键点击选择查看日志,在对应节点信息上右键选择“重置master到此版本” 在弹出框中选择硬重置(重置所有改变)点击确定即可。但是这样重置就不能反悔。

想要反悔得添加标签,在需要被标注的的版本阶点右键点击“在此版本上创建标签” ,然后就可以放心大胆的重置你想重置的版本了,取消标签点击删除”标签D”


子模块

子模块就是一个git仓库包含其他git仓库,当我们需要把其他开源项目作为本项目的一个库,并可以随时拉取更新的时候或者我们的项目需要分模块独立开发项目的时候可以使用子模块,克隆子模块的仓库,需要选择递归。

添加子模块:右键TortoiseGit(T)--”添加子模块”--再推送就可以在服务器上的到一个新的子模块仓库了

子Issue和request

issue:讨论(类似论坛)

Request:拉取请求,为项目贡献代码,请求项目管理者合并自己的代码

创建issue


request先设置成开源如下图

开源代码后,登陆一个其他账号,通过fork拉取项目

然后就可以开始协调工作了

教学视频点击查看:

https://www.bilibili.com/video/BV1h24y1e7jv?

p=11&vd_source=b22442ae2dca586b2b9556d16dc51c75

不知道为啥,把文档的内容复制过来,图片还要一个一个重新弄,我嫌烦删了很多图,可以看视频学习,见谅!

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

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

相关文章

鸿蒙开发:Universal Keystore Kit(密钥管理服务)【获取密钥属性(C/C++)】

获取密钥属性(C/C) HUKS提供了接口供业务获取指定密钥的相关属性。在获取指定密钥属性前&#xff0c;需要确保已在HUKS中生成或导入持久化存储的密钥。 在CMake脚本中链接相关动态库 target_link_libraries(entry PUBLIC libhuks_ndk.z.so)开发步骤 构造对应参数。 keyAlias&…

生成树(STP)协议

一、生成树的技术背景 1、交换机单线路上链,存在单点故障,上行线路及设备都不具备冗余性,一旦链路或上行设备发生故障,网络将面临断网。 总结:以下网络不够健壮,不具备冗余性。 2、因此引入如下网络拓扑结构: 上述冗余拓扑能够解决单点故障问题,但同时冗拓扑也带来了…

【PB案例学习笔记】-32制作一个简单记事本程序

大家好&#xff0c;我是晓凡。 写在前面 这是PB案例学习笔记系列文章的第32篇&#xff0c;该系列文章适合具有一定PB基础的读者。 通过一个个由浅入深的编程实战案例学习&#xff0c;提高编程技巧&#xff0c;以保证小伙伴们能应付公司的各种开发需求。 文章中设计到的源码…

【信息系统项目管理师】高项论文通用加分素材

文章目录 输入I工具与技术TT输出O 写一些增加项目真实性的问题&#xff0c;如变更、进度&#xff08;范围蔓延、进度延后怎么处理、好几个项目并行资源协调&#xff09;||成本、沟通&#xff08;跨部门沟通&#xff09; 在保障真实性的同时选的项目紧跟潮流 要能看出实际经验 …

GB35114国密算法-GMSSL

C有个三方库-GMSSL是可以进行GB35114所需要的SM2、SM3、SM4等加解密算法的&#xff0c;但是使用国密算法是需要申请报备的 GmSSL是由北京大学自主开发的国产商用密码开源库&#xff0c;实现了对国密算法、标准和安全通信协议的全面功能覆盖&#xff0c;支持包括移动端在内的主流…

国产精品ORM框架-SqlSugar详解 进阶功能 集成整合 脚手架应用 附源码 云草桑 专题二

国产精品ORM框架-SqlSugar详解 SqlSugar初识 专题一-CSDN博客 sqlsugar 官网-CSDN博客 4、进阶功能 5、集成整合 6、脚手架应用 4、进阶功能 4.1、生命周期 Queryable 什么时候操作库 Queryable是一个引用类型 Queryable拷贝机制 {ISugarQueryable<Student> quer…

十九、【文本编辑器(五)】排版功能

目录 一、搭建框架 二、实现段落对齐 三、实现文本排序 一、搭建框架 (1) 在imgprocessor.h文件中添加private变量&#xff1a; QLabel *listLabel; //排序设置项QComboBox *listComboBox;QActionGroup *actGrp;QAction *leftAction;QAction *…

基于jeecgboot-vue3的Flowable流程支持bpmn流程设计器与仿钉钉流程设计器-编辑多版本处理

因为这个项目license问题无法开源&#xff0c;更多技术支持与服务请加入我的知识星球。 1、前端编辑带有仿钉钉流程的处理 /** 编辑流程设计弹窗页面 */const handleLoadXml (row) > {console.log("handleLoadXml row",row)const params {flowKey: row.key,ver…

PDF Reader 编辑阅读软件 for Mac v4.0.4(办公必备,小白简单易上手)

Mac分享吧 文章目录 效果一、下载软件二、开始安装1、双击运行软件&#xff0c;将其从左侧拖入右侧文件夹中&#xff0c;等待安装完毕2、应用程序显示软件图标&#xff0c;表示安装成功 三、运行测试1、打开软件 安装完成&#xff01;&#xff01;&#xff01; 效果 一、下载软…

redis其他类型和配置文件

很多博客只讲了五大基本类型&#xff0c;确实&#xff0c;是最常用的&#xff0c;而且百分之九十的程序员对于Redis只限于了解String这种最常用的。但是我个人认为&#xff0c;既然Redis官方提供了其他的数据类型&#xff0c;肯定是有相应的考量的&#xff0c;在某些特殊的业务…

51单片机嵌入式开发:11、 STC89C52RC 实现一个滑动的led点阵程序

STC89C52RC 实现一个滑动的led点阵程序 1 概述2 LED点阵介绍2.1 LED概述2.2 LED点阵注意事项 3 LED点阵原理3.1 Led点阵内部电路3.2 原理图电路 4 软件实现点阵图案的滑动4.1 软件工程代码4.2 Protues仿真 5 扩展74HC595&#xff08;后续专题开展&#xff09;6 总结 第十一节 1…

MySQL—— if/cast/case.... end/md5 函数

目录 1. if 使用 2. if 嵌套 ​3. case ... end 4. 类型转换 cast&#xff08;&#xff09; 5. 加密函数 md5&#xff08;&#xff09; 1. if 使用 将姓名为smith的员工工资上调10%&#xff1b; 2. if 嵌套 如果岗位是manager&#xff0c;工资上调10%&#xff0c;如果岗位是s…

camtasia怎么剪掉不用的部分 屏幕录制的视频怎么裁剪上下不要的部分 camtasia studio怎么裁剪视频时长 camtasia怎么剪辑视频教程

有时我们录制的屏幕内容&#xff0c;并不一定全部需要。那么&#xff0c;屏幕录制的视频怎么裁剪上下不要的部分&#xff1f;可以使用视频剪辑软件&#xff0c;或者微课制作工具来进行裁剪。屏幕录制的视频怎么旋转&#xff1f;录制视频的旋转也是一样的&#xff0c;均在编辑步…

10.1 标注、注记图层和注记整体说明

文章目录 前言标注、注记图层和注记QGis中的标注QGis中的注释(Annotation)图层QGis中的注记 总结 前言 介绍标注、注记图层和注记说明&#xff1a;文章中的示例代码均来自开源项目qgis_cpp_api_apps 标注、注记图层和注记 有时地图需要使用一些文字信息说明其中的地理要素或其…

Redis系列命令更新--Redis列表命令

Redis列表 1、Redis Blpop命令&#xff1a; &#xff08;1&#xff09;说明&#xff1a;Redis Blpop命令移出并获取列表的第一个元素&#xff1b;如果列表没有元素会阻塞列表直到等到超时或发现可弹出元素为止 &#xff08;2&#xff09;语法&#xff1a;redis 127.0.0.1:63…

IDEA快速生成项目树形结构图

下图用的IDEA工具&#xff0c;但我觉得WebStorm 应该也可以 文章目录 进入项目根目录下&#xff0c;进入cmd输入如下指令&#xff1a; 只有文件夹 tree . > list.txt 包括文件夹和文件 tree /f . > list.txt 还可以为相关包路径加上注释

程控电阻器

程控电阻器 由于要测试电阻型温度传感器&#xff0c;一个电阻箱又很贵&#xff0c;就想做一款 程控电阻器 来满足。 设计满足300Ω到400kΩ可调电阻。 设计思路 选择数字电位器去控制电阻输出&#xff0c;最好是精度高&#xff0c;范围大的数字电位器。经过寻找后&#xff0c;发…

CentOS 7 Web面板的文件管理器说明

在使用CentOS 7 Web Panel&#xff08;CWP7&#xff09;时&#xff0c;偶尔要求在服务器曲面上修改&#xff0c;创建&#xff0c;编辑或删除文件。 最简单&#xff0c;最直接的方式是通过利用CWP7的内置文件管理器。 本文将详细介绍如何启动它&#xff0c;使用它&#xff0c;以…

【D3.js in Action 3 精译】2.3 用 D3 选中页面元素

当前内容所在位置 第一部分 D3.js 基础知识 第一章 D3.js 简介&#xff08;已完结&#xff09; 1.1 何为 D3.js&#xff1f;1.2 D3 生态系统——入门须知1.3 数据可视化最佳实践&#xff08;上&#xff09;1.3 数据可视化最佳实践&#xff08;下&#xff09;1.4 本章小结 第二章…

C语言基础and数据结构

C语言程序和程序设计概述 程序:可以连续执行的一条条指令的集合 开发过程:C源程序(.c文件) --> 目标程序(.obj二进制文件,目标文件) --> 可执行文件(.exe文件) -->结果 在任何机器上可以运行C源程序生成的 .exe 文件 没有安装C语言集成开发环境,不能编译C语言程…