学习大数据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://www.mzph.cn/diannao/47136.shtml

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

相关文章

降Compose十八掌之『震惊百里』| Animations

公众号「稀有猿诉」 原文链接 降Compose十八掌之『震惊百里』| Animations 动画对于UI来说无疑是最重要的核心功能&#xff0c;它能够让UI变得生动有吸引力。适当的使用动画可以提升UI的流畅性&#xff0c;让UI体验更为顺滑。在Jetpack Compose中有丰富的函数可以用来实…

六西格玛设计:以客户为中心,驱动企业持续创新

在当今竞争激烈的市场环境中&#xff0c;企业要想脱颖而出&#xff0c;就必须在产品质量、服务效率和客户满意度上不断追求卓越。六西格玛设计&#xff08;Six Sigma Design&#xff09;作为一种高度规范化的管理方法&#xff0c;正逐步成为众多企业实现这一目标的重要工具。张…

NSSCTF中24网安培训day2中web题目【下】

[NISACTF 2022]easyssrf 这道题目考察的是php伪协议的知识点 首先利用file协议进行flag查找 file:///flag.php 接着我们用file协议继续查找fl4g file:///fl4g 接着我们访问此文件&#xff0c;得到php代码如下 这里存在着stristr的函数&#x…

Linux中的环境变量

一、基本概念 环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数。 如&#xff1a;我们在编写C/C代码的时候&#xff0c;在链接的时候&#xff0c;从来不知道我们的所链接的动态静态库在哪里&#xff0c;但是照样可以链接成功&#xff…

Cesium能做啥,加载哪些数据源,开源免费用商用吗?这里告诉你。

很多小伙伴对Cesium是什么&#xff0c;一知半解&#xff0c;本文是基础知识的扫盲&#xff0c;为大家分享cesium是什么、能做什么、默认数据是什么&#xff0c;为什么首先要进行数据加载&#xff0c;要加载哪些数据&#xff0c;希望通过这些带你入个门&#xff0c;欢迎点赞评论…

vue仿甘特图开发工程施工进度表

前言 本文是根据项目实际开发中一个需求开发的demo&#xff0c;仅用了elementUI&#xff0c;可当作独立组件使用&#xff0c;C V即用。 当然没考虑其他的扩展性和一些数据的校验&#xff0c;主要是提供一个处理思路&#xff0c;有需要的小伙伴可以直接复制&#xff1b;本demo的…

高职院校人工智能人才培养成果导向系统构建、实施要点与评量方法

一、引言 近年来&#xff0c;人工智能技术在全球范围内迅速发展&#xff0c;对各行各业产生了深远的影响。高职院校作为培养高技能人才的重要基地&#xff0c;肩负着培养人工智能领域专业人才的重任。为了适应社会对人工智能人才的需求&#xff0c;高职院校需要构建一套科学、…

【node-RED 4.0.2】连接 Oracle 数据库踩坑解决,使用模组:node-red-contrib-agur-connector

关于 Oracle Oracle 就好像一张吸满水的面巾纸&#xff0c;你稍一用力它就烂了。 PS&#xff1a;我更新了更好的模组的教程&#xff0c;这篇已经是旧款的教程&#xff0c;但是它仍旧包含了必要的配置环境变量等操作。 最新的模组教程&#xff1a;node-red-contrib-agur-connec…

AI时代:探索个人潜能的新视角

文章目录 Al时代的个人发展1 AI的高速发展意味着什么1.1 生产力大幅提升1.2 生产关系的改变1.3 产品范式1.4 产业革命1.5 Al的局限性1.5.1局限一:大模型的幻觉1.5.2 局限二&#xff1a;Token 2 个体如何应对这种改变?2.1 职场人2.2 K12家长2.3 大学生2.4 创业者 3 人工智能发展…

解决vue3中el-input在form表单按下回车刷新页面

问题&#xff1a;在input框中点击回车之后不是调用我写的回车事件&#xff0c;而是刷新页面 原因&#xff1a; 如果表单中只有一个input 框则按下回车会直接关闭表单 所以导致刷新页面 解决方法 &#xff1a; 再写一个input 表单 &#xff0c;并设置style"display:none&…

SimMIM:一个类BERT的计算机视觉的预训练框架

1、前言 呃…好久没有写博客了&#xff0c;主要是最近时间比较少。今天来做一期视频博客的内容。本文主要讲SimMIM&#xff0c;它是一个将计算机视觉&#xff08;图像&#xff09;进行自监督训练的框架。 原论文&#xff1a;SimMIM&#xff1a;用于掩码图像建模的简单框架 (a…

解决虚拟机与主机ping不通,解决主机没有vmware网络

由于注册表文件缺失导致&#xff0c;使用这个工具 下载cclean 白嫖就行 https://www.ccleaner.com/ 是 点击修复就可以了

防火墙双机热备带宽管理综合实验

一、实验拓扑 二、实验要求 12&#xff0c;对现有网络进行改造升级&#xff0c;将当个防火墙组网改成双机热备的组网形式&#xff0c;做负载分担模式&#xff0c;游客区和DMZ区走FW3&#xff0c;生产区和办公区的流量走FW1 13&#xff0c;办公区上网用户限制流量不超过100M&am…

技术速递|Let’s Learn .NET Aspire – 开始您的云原生之旅!

作者&#xff1a;James Montemagno 排版&#xff1a;Alan Wang Let’s Learn .NET 是我们全球性的直播学习活动。在过去 3 年里&#xff0c;来自世界各地的开发人员与团队成员一起学习最新的 .NET 技术&#xff0c;并参加现场研讨会学习如何使用它&#xff01;最重要的是&#…

Java IO中的 InputStreamReader 和 OutputStreamWriter

Java IO 的流&#xff0c;有三个分类的维度&#xff1a; 输入流 or 输出流节点流 or 处理流字节流 or 字符流 在Java IO库中&#xff0c;InputStreamReader和OutputStreamWriter是两个非常重要的类&#xff0c;它们作为字符流和字节流之间的桥梁。 这两个类使得开发者可以方…

整数或小数点后补0操作

效果展示&#xff1a; 整数情况&#xff1a; 小数情况&#xff1a; 小编这里是以微信小程序举例&#xff0c;代码通用可兼容vue等。 1.在utils文件下创建工具util.js文本 util.js页面&#xff1a; // 格式…

淘宝扭蛋机小程序:旋转惊喜,开启购物新篇章!

在追求创新与惊喜的购物时代&#xff0c;淘宝再次引领潮流&#xff0c;精心打造——淘宝扭蛋机小程序&#xff0c;为您的购物之旅增添一抹不同寻常的色彩。这不仅仅是一个购物工具&#xff0c;更是一个充满趣味、互动与惊喜的宝藏盒子&#xff0c;等待您来探索与发现。 【旋转…

通过Dockerfile构建镜像

案例一&#xff1a; 使用Dockerfile构建tomcat镜像 cd /opt mkdir tomcat cd tomcat/ 上传tomcat所需的依赖包 使用tar xf 解压三个压缩包vim Dockerfile FROM centos:7 LABEL function"tomcat image" author"tc" createtime"2024-07-16"ADD j…

【 香橙派 AIpro评测】烧系统运行部署LLMS大模型跑开源yolov5物体检测并体验Jupyter Lab AI 应用样例(新手入门)

文章目录 一、引言⭐1.1下载镜像烧系统⭐1.2开发板初始化系统配置远程登陆&#x1f496; 远程ssh&#x1f496;查看ubuntu桌面&#x1f496; 远程向日葵 二、部署LLMS大模型&yolov5物体检测⭐2.1 快速启动LLMS大模型&#x1f496;拉取代码&#x1f496;下载mode数据&#x…

第九课:服务器发布(静态nat配置)

一个要用到静态NAT的场景&#xff0c;当内网有一台服务器server1&#xff0c;假如一个用户在外网&#xff0c;从外网访问内网怎么访问呢&#xff0c;无法访问&#xff0c;这是因为外网没办法直接访问内网&#xff0c;这时候需要给服务器做一个静态NAT。 静态NAT指的是给服务器…