pkg

【包管理器】vcpkg

有些话、适合烂在心里 提交于 2020-04-26 11:05:22
1. vcpkg 介绍 vcpkg 是用于 C++ 的一种命令行包管理器 。 它极大地 简化了 Windows、Linux 和 MacOS 上第三方库的购置与安装。 如果项目要使用第三方库,建议通过 vcpkg 来安装它们。 vcpkg 同时支持开源和专有库。 已测试 vcpkg Windows 目录中所有库与 Visual Studio 2015、Visual Studio 2017 及 Visual Studio 2019 的兼容性。 在 Windows 和 Linux/MacOS 目录之间,vcpkg 现已支持超过 1900 个库。 C++ 社区正在不断向两个目录添加更多的库。一台计算机上可以有多个 vcpkg 克隆。 每一克隆都可以设置为生成带有你首选的编译开关的自定义库集合。 每个克隆都是一个自包含的环境,它自身的 vcpkg.exe 副本仅可在自己的层次结构中运行。 vcpkg 不会被添加到任何环境变量中,并且在 Windows 注册表或 Visual Studio 上也没有依赖项。 对于 Windows 目录中的库,vcpkg 会下载源,而不是二进制文件。 它使用可以找到的最新版 Visual Studio 编译这些源代码。 在 C++ 中,有一点至关重要,即你的应用程序代码以及你所使用的任何库应均是由同一编译器和编译器版本编译的。 通过 vcpkg

【oracle】cursor 概念,cursor经典例子

℡╲_俬逩灬. 提交于 2020-04-25 16:58:02
1118-01 cursor 概念,经典例子 类型 1.隐式游标 2.显式游标 3.ref cursor 4.sysref cursor 定义 1.隐式游标 无需定义,select语句即为隐式游标 2.显式游标 cursor <cursor>[(<param_list>)]is <select_statement>; 说明: 2.1 定义时不带参数,带参数 说明: 1)参数 只能指定 数据类型,不能指定长度。 2)参数可以用 default 设置默认值,设有默认值的游标在open时 可以 不带参数。 3)参数 通常用在 <select_statement> 中。 2.2 < select_statement >中 不带变量,带变量 3.ref cursor 3.1弱类型 type <cursor> is ref cursor; 3.2强类型 type <cursor> is ref cursor return tab_student%rowtype; --指定了return 注意: 1)创建procedure返回游标类型变量(out 参数)时,只能使用 ref cursor。 2)ref cursor没有参数,可以使用带变量的sql实现。 3)ref cursor在open时有2种写法: open <ref_cursor> for <select_statement>; open

oracle学习笔记-mysql与oracle语法区别

╄→гoц情女王★ 提交于 2020-04-25 09:47:14
MySQL 分支和循环结构 区别(转: https://www.cnblogs.com/echola/p/9550688.html ) 1、if else分支 mysql:用elseif Oracle:用elsif 可以用select直接查看获取的值或者一个变量。 1 create procedure pd_testif2(in num int,out str varchar) 2 begin 3 if num=1 then 4 set str='一'; 5 elseif num=2 then 6 set str='二'; 7 end if; 8 end; 9 --调用 10 call pd_testif2(1,@str); 11 select @str; 执行结果:一 2、循环 mysql:while 条件 do Oracle:while 条件 loop 语句块 语句块 end while; end loop; 1 create procedure pd_testwhile22(in num int,out sum int) 2 begin 3 --定义变量 4 declare i int default 1; 5 declare sum int default 0; 6 --循环条件 7 while i<num do 8 set vsum=vsum+i; 9 set i=i+1

mysql与oracle的语法对比

放肆的年华 提交于 2020-04-25 05:35:58
数据类型 编号 ORACLE MYSQL 注释 1 NUMBER int / DECIMAL DECIMAL 就是 NUMBER(10,2) 这样的结构 INT 就是是 NUMBER(10) ,表示整型; MYSQL 有很多类 int 型, tinyint mediumint bigint 等,不同的 int 宽度不一样 2 Varchar2 ( n ) varchar(n) 3 Date DATATIME 日期字段的处理 MYSQL 日期字段分 DATE 和 TIME 两种, ORACLE 日期字段只有 DATE ,包含年月日时分秒信息,用当前数据库的系统时间为 SYSDATE, 精确到秒,或者用字符串转换成日期型函数 TO_DATE(‘2001-08-01’,’YYYY-MM-DD’) 年 - 月 - 日 24 小时 : 分钟 : 秒 的格式 YYYY-MM-DD HH24:MI:SS TO_DATE() 还有很多种日期格式 , 可以参看 ORACLE DOC. 日期型字段转换成字符串函数 TO_CHAR(‘2001-08-01’,’YYYY-MM-DD HH24:MI:SS’) 日期字段的数学运算公式有很大的不同。 MYSQL 找到离当前时间 7 天用 DATE_FIELD_NAME > SUBDATE ( NOW (), INTERVAL 7 DAY ) ORACLE

Oracle与MySQL的SQL语句区别

£可爱£侵袭症+ 提交于 2020-04-25 05:26:31
Oracle与MySQL的SQL语句区别 *注(来源于学习时的资料具体出处不明如有需求请联系备注转载链接或删除。) 1数据库 /* mysql可以创建数据库,而oracle没有这个操作,oracle只能创建实例; sql数据库操作:database 格式: * create database 数据库名; * create database 数据库名 character set 字符集; */ CREATE DATABASE j0815_1; CREATE DATABASE j0815_2 CHARACTER SET utf8; -查看数据库 SHOW DATABASES; -查看定义的数据库 SHOW CREATE DATABASE j0815_1; -删除数据库 DROP DATABASE j0815_1; -切换数据库 USE j0815_1; -查看正在使用的数据库: SELECT database(); 2 表 2.1 创建表(异) /* mysql: 1、mysql没有number、varchar2()类型; 2、mysql可以声明自增长:auto_increment; 3、mysql有double类型; oracle: 1、oracle没有double类型、有int类型但多数会用number来代替int; 2、oracle不可以声明自增长:auto_increment

从 TPCH 测试学习性能优化技巧之 Q19

和自甴很熟 提交于 2020-04-24 17:43:08
一、 查询要求 Q19语句查询得到对一些空运或人工运输零件三个不同种类的所有订单的总折扣收入。零件的选择考虑特定品牌、包装和尺寸范围。 Q19语句的特点是:带有聚集、IN子查询操作并存的三表连接操作。 二、 Oracle执行 Oracle编写的查询SQL语句如下: select /*+ parallel(n) */ sum(l_extendedprice * (1 - l_discount)) as revenue from lineitem,part where ( p_partkey = l_partkey and p_brand = 'Brand#32' and p_container in ('SM CASE', 'SM BOX', 'SM PACK', 'SM PKG') and l_quantity >= 7 and l_quantity <= 7 + 10 and p_size between 1 and 5 and l_shipmode in ('AIR', 'AIR REG') and l_shipinstruct = 'DELIVER IN PERSON' ) or ( p_partkey = l_partkey and p_brand = 'Brand#23' and p_container in ('MED BAG', 'MED BOX', 'MED PKG

Java使用 POI 操作Excel

十年热恋 提交于 2020-04-24 14:19:21
   Java中常见的用来操作 Excel 的方式有2种:JXL和POI。JXL只能对 Excel进行操作,且只支持到 Excel 95-2000的版本。而POI是Apache 的开源项目,由Java编写的跨平台 Java API,可操作 Microsoft Office。借助POI,可以方便的生成数据报表,数据批量上传,数据备份等工作。 一.简单使用 1.创建Maven工程导入POI坐标 <!-- poi 相关 --> < dependency > < groupId > org.apache.poi </ groupId > < artifactId > poi </ artifactId > < version > 4.0.1 </ version > </ dependency > < dependency > < groupId > org.apache.poi </ groupId > < artifactId > poi-ooxml </ artifactId > < version > 4.0.1 </ version > </ dependency > < dependency > < groupId > org.apache.poi </ groupId > < artifactId > poi-ooxml-schemas </ artifactId > <

K8s 从懵圈到熟练-集群伸缩原理

这一生的挚爱 提交于 2020-04-24 13:33:40
作者 | 声东 阿里云技术专家 <关注公众号,回复 排查 即可下载电子书> 《深入浅出 Kubernetes》一书共汇集 12 篇技术文章,帮助你一次搞懂 6 个核心原理,吃透基础理论,一次学会 6 个典型问题的华丽操作!以下内容节选自本书: 阿里云 K8s 集群的一个重要特性,是集群的节点可以动态的增加或减少。有了这个特性,集群才能在计算资源不足的情况下扩容新的节点,同时也可以在资源利用率降低的时候,释放节点以节省费用。 这篇文章,我们将讨论阿里云 K8s 集群扩容与缩容的实现原理。理解实现原理,在遇到问题的时候,我们就可以高效地排查并定位原因。 虽然我们的讨论是基于1.12.6 版本的,但是理论上后续版本与这篇文章所述集群伸缩原理出入不大。 节点增加原理 阿里云 K8s 集群可以给集群增加节点的方式有,添加已有节点,集群扩容,和自动伸缩。其中,添加已有节点又可分为手动添加已有节点和自动添加已有节点。节点的增加涉及到的组件有,节点准备,弹性伸缩(ESS),管控,Cluster Autoscaler 以及调度器。 手动添加已有节点 节点准备,其实就是把一个普通的 ECS 实例,安装配置成为一个 K8s 集群节点的过程。这个过程仅靠一条命令就可以完成。这条命令使用 curl 下载 attach_node.sh 脚本,然后以 openapi token 为参数,在 ECS 上运行。

靠!安装了macOS Catalina(10.15.4)后,文件系统都乱套了

一个人想着一个人 提交于 2020-04-24 09:17:02
最近闲来无事,决定将我的两台apple电脑升级成最新的苹果系统(macOS Catalina),当然,由于以前升级过多次mac系统,所以毫不犹豫从app store下载了最新的macOS Cetalina系统,当然,下载很快,安装也很快,过程就不说了,so easy。 1. 到底发生了什么事 不过安装完后,发生了一件不可思议的事,进入硬盘,发现硬盘里只有如下5个目录。my god,我的其他文件夹哪里去了?难道升级时给我格式化了? 转念一想,Apple应该不会这么变态,否则苹果总部应该早都被自己的用户给踏平了。于是立刻上网查是怎么回事,很过有了结果。原来从Catalina版本开始,Apple为了实现自己更安全的目的,将硬盘分成了两个卷(以前是一个卷),一个是系统卷,一个是数据卷。从下图所示的磁盘工具中就可以看出这一点。 这有些类似于Windows的逻辑磁盘,不过与Windows不同,Catalina的系统卷和数据卷是共享整个磁盘的,只是进行了逻辑隔离。在默认情况下,系统卷只允许操作系统本身来写文件,对于其他用户(包括root用户)都是只读的。也就是说,使用sudo命令也不能向系统卷写入任何数据。 2. 我的文件到哪里去了呢? 现在关键的问题是,我的文件夹到哪里去了呢?其实Catalina会将用户自己创建的文件夹都放到如下的目录: /Users/Shared/Relocated\

基于netty实现rpc框架-spring boot服务端

China☆狼群 提交于 2020-04-23 22:28:46
demo地址 https://gitee.com/syher/grave-netty RPC介绍 首先了解一下RPC:远程过程调用。简单点说就是本地应用可以调用远程服务器的接口。那么通过什么方式调用远程接口呢?说白了RPC只是一种概念。他的调用可以基于HTTP实现,也可以基于TCP/IP实现。甚至私人定制的通讯协议。 当然,私人定制通讯协议成本过高且不具备通用性。我们不做展开讨论(其实我也展不开。。。)。那为什么不使用HTTP协议呢?受限于HTTP协议层级过高,数据传输效率不如TCP/IP。所以RPC远程调用一般采用TCP/IP实现。即调用socket方法。 RPC实现原理 1. 客户端发起远程服务调用。 2. 客户端将类信息、调用方法和入参信息通过socket通道发送给服务端。 3. 服务端解析数据包,调用本地接口。 5.将执行结果通过socket返回给客户端。 6.客户端拿到并解析返回结果。 RPC实现 java如何实现一个rpc框架,其实就是按照上面的原理再做一些详细的补充。比如通过动态代理封装客户端的数据包、通过反射机制实现服务端实现类的调用等等。 今天,我们先基于spring boot + netty 做rpc服务端的实现。 首先,做一个注解用于标识接口提供rpc调用。 @Target(ElementType.TYPE) @Retention