2018网站建设行业/搭建网站需要哪些步骤
最基本的数据查询功能
本篇文章我们将介绍如何使用ADI平台定义一个基本的数据查询接口。由于是介绍平台具体功能的第一篇文章,里面会涉及比较多的概念介绍,了解了这些概念有助于您阅读后续的文章。
ADI平台的首页面如下:
1.菜单介绍
1.1 OAuth客户端
该API平台是一个独立的服务平台,任何与该API对接的系统都是一个OAuth客户端。
1.2 路由设置
一个路由就是一个接口,该接口是给各OAuth客户端调用的,路由下面包括分享设置,所谓分享设置就是接口的执行策略。一个路由可以包括多个分享设置(即多个执行策略),能够根据不同的条件执行不同的分享设置(例如不同的入参可以执行不同的分享设置),在今后的文章中会详细介绍。
1.3 标准字典类别
即定义接口报文中有哪些字段是需要使用字典值的,您需要在这里配置您的业务系统中的字典字段和字典值,例如房地产行业的业务系统中的业务类别、交易者类别、房屋状态、建筑结构等。该功能用于自动完成两个不同系统间的字典转换(例如A系统的"男性"与B系统的"male"互相转换),在今后的文章中会详细介绍。
1.4 分享日志ES查询
API平台会将每次的上报记录保存在ES中,您通过该模块可以方便的对全量分享日志做可视化查询(一个分享设置的执行会产生一条对应的分享日志)。
1.5 分享日志管理
通过该模块可以方便的对保存在关系数据库中的全量分享日志做可视化查询。
1.6 失败请求管理
通过该模块可以更加直观的看到接口调用失败的日志。
1.6 产品授权管理
在这里填写产品授权码,只有通过授权的API平台才能正常使用。
2.测试数据准备
我准备了一个mysql的测试库business_system来模拟某网签备案业务系统的数据库数据(什么是网签备案系统?简单来说就是住建局的房产交易平台,供买卖双方签订房屋买卖合同使用),其中包括三张表:
2.1 幢表(zhuang)
表结构如下:
幢表准备了两条数据:
2.2 户表(h)
户表通过"幢序号zxh"外键字段与zhuang表关联,表名这套房子属于哪个楼幢,表结构如下:
户表准备了两条数据:
2.3 交易者表(jyz)
交易者表记录了谁购买了哪一套房子(通过户序号关联户表),以及买卖合同编号等信息,表结构如下:
交易者表中保存了两个合同,其中的YS20231203000001合同有两个卖方(张三、李四)、两个买方(王五、赵六);YS20231203000002合同有一个卖方(戚薇)和一个买方(周杰伦),数据如下:
请注意: 后续的文章将很大程度在这个测试库上完成相关示例,请大家多多熟悉。
2.4 接口需求
通过买卖合同号使用GET请求查询该合同对应的楼栋基本信息、户基本信息、卖方基本信息、买方基本信息,该接口提供给住建局的预售资金监管系统使用(什么是预售资金监管系统?简单来说就是住建局的资金监管平台,买方把购房资金交给资金监管系统,等条件成熟后住建局再把资金给卖方,由此确保房产交易的安全性),要求接口响应如下json格式的报文:
{"ywbh": "业务编号","htbh": "合同编号","building": {"bdcdyh": "幢登记单元代码/不动产单元号","zl": "幢坐落"},"houses": [{"bdcdyh": "户登记单元代码/不动产单元号","fwbm": "房屋编码","szqsc": "所在起始层","szzzc": "所在终止层","shbw": "室号部位","fwzl": "房屋坐落","jzjg": "建筑结构","jzjgbm": "建筑结构编码","fwyt": "房屋用途","fwytbm": "房屋用途编码","jzmj": "建筑面积"}],"sellers": [{"jyzqc": "交易者全称","jyzzjmc": "交易者证件名称","jyzzjhm": "交易者证件号码","jyzxz": "交易者性质"}],"buyers": [{"jyzqc": "交易者全称","jyzzjmc": "交易者证件名称","jyzzjhm": "交易者证件号码","jyzxz": "交易者性质"}]
}
其中building用来装载幢基本信息,houses用来装载户基本信息,sellers用来装载卖方信息,buyers用来装载买方信息。
3.开始定义接口
3.1 新增OAuth客户端
点击主界面的[OAuth客户端]菜单->点击[新增],填写如下字段:
核心字段说明:
系统名称: 是指要与我们API平台对接的第三方业务系统的名称;这里我们命名为"预售资金监管系统"。
单位名称: 是指要与我们API平台对接的第三方业务系统所属的单位;这里我们命名为"住建/房管"。
client_id: 是指该系统在API平台的唯一标识,今后我们做OAuth2.0客户端认证时会用到。
token的有效时间(秒): 是指该系统从API平台获取到的access_token的有效期(默认值是2592000,即30天),今后我们做OAuth2.0客户端认证时会用到。
按同样的方式我们再新增一个OAuth客户端,命名为"网签备案系统"。
当两个客户端新增完成后,我们可以看到OAuth客户端列表:
其中的client_secret是自动生成的,今后我们做OAuth2.0客户端认证时会用到。
注意:一个OAuth客户端新增后可以重复使用,当遇到有新的系统要参与对接时,按同样的方式新增即可。
3.2 新增一个路由(接口)
点击主界面的[路由设置管理]->点击[新增],填写以下字段:
核心字段说明:
路由编码: 是指接口的英文名称,会体现到动态生成的接口地址中;这里我们命名为"queryMmhtJbxx"。
路由名称: 是指接口的中文名称;这里我们命名为"查询买卖合同基本信息"。
源系统: 是指该接口默认是给哪个OAuth客户端调用的;这里我们选择"预售资金监管系统"(当然也可以被其它OAuth客户端调用,这里只是赋一个默认值)。
调用方式: 是指该接口对应的http method;这里我们按上面的需求选择get。
其它字段我们暂时用不上,后续文章介绍对应的功能时再讲解,这里保持默认即可。保存后,您将看到以下界面:
3.3 新增一个分享
点击路由的[分享设置]-[新增],填写以下字段:
核心字段说明:
分享类别: 是指该分享所属的类别,尽量实事求是即可;因为是跟住建局对接,因此这里我们从下拉列表选择"应用集成-001住建"。
分享编码: 是指分享设置的英文名称,默认和路由编码一致,如果您的路由下有多个分享设置,请修改分享编码,确保不会违反唯一性(后续文章会详细介绍一个路由下新增多个分享设置的应用场景)。
分享名称: 是指分享设置的中文名称,默认和路由编码一致,如果您的路由下有多个分享设置,根据分享设置的实际用途修改即可。
开发完成: 选择“是”才会完全执行该分享设置的逻辑;选择“否”会直接响应测试数据,且需要您在这个界面维护“测试响应数据”字段(一般什么情况下会选择"否"?当目标系统的接口还未开发完成时,为了不影响源系统的程序开发进度,这里就可以选择"否",并且按照约定的报文格式组织测试数据进行响应;后续文章会详细介绍)。
目标系统名称: 是指这个分享设置的响应方是谁,这里我们选择"网签备案系统"。
是否启用: 选择“是”,如果选择“否”,将不会执行该分享设置(当一个路由下有多个分享设置,并且不再需要某个分享设置时,可以设置成"否")。
是否前置分享: 是指执行该路由的其它分享设置之前,是否需要优先执行该分享设置,当且仅当前置分享设置执行成功后才会执行其他分享设置(后续文章会详细介绍前置分享的应用场景)。
实时响应: 是指是否需要同步执行该分享设置;选择“否”将异步执行,直接响应成功(后续文章会详细介绍异步执行的应用场景)。
数据库类型: 是指该分享设置要直接操作的数据库类型,支持Oracle、Mysql、SqlServer、PostgreSQL;这里我们选择Mysql。
数据库IP: 是指该分享设置要直接操作的数据库IP地址;由于测试库在本机,因此这里填写"127.0.0.1"。
数据库实例名: 是指该分享设置要直接操作的数据库实例名;这里我们填写"business_system?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC"。
数据库端口: 是指该分享设置要直接操作的数据库连接端口;这里我们填写3306。
数据库用户名: 是指该分享设置要直接操作的数据库用户名。
数据库密码: 是指该分享设置要直接操作的数据库密码,保存后API平台会进行加密存储。
其它字段我们暂时用不上,后续文章介绍对应的功能时再讲解,这里保持默认即可。保存后,您将看到以下界面:
可以点击"数据库连接测试",看看我们填写的数据库信息是否正确,如图:
3.4 编写sql组装业务数据
点击分享设置的[数据定义],如图:
点击数据定义页面的[新增],假设接口的入参是htbh(合同编号),那么我们要做的,就是根据入参编写sql语句,实现报文的组装。
首先,我们把json报文的根节点字段查询出来,sql如下:
select distinct ywbh,htbh from jyz j where j.HTBH = request~htbh~
提示: request~ ~ 是sql中获取动态参数(从接口的请求报文中获取)的写法,参数名和入参保持一致(大小写不敏感);API平台生成在线接口文档的时候,会自动解析request~~中的参数,以便您进行测试。
把sql填写到表单中,如图:
核心字段说明:
数据集: 是指您的sql语句。
数据类型: 是指该sql语句的执行结果要组装成什么json格式,支持jsonObject和jsonArray;根数据集只能使用jsonObject。
数据集名称: 是指组装成json的时候,该数据集对应的json字段名;默认root,表示根数据集,会将sql查出来的字段放到json对象的根节点。
数据集父类名称: 是指该数据集的上层数据集名称,用来实现json嵌套格式(当某条sql的执行依赖于上级sql的执行结果时,那么需要在这里指定上层数据集,并且通过 parent~ ~ 可以把上层sql的执行结果作为本sql的查询条件)。
是否大写: 是指组装json的时候,json字段是否需要大写;根据最前面给的json实例,我们这里选择"否",即小写。
执行前置条件_JS: 是指满足指定条件时才执行该数据集(后续文章会详细介绍使用场景)。
填写完成后点击保存即可,如果保存成功,代表您的sql语法无误,API平台会自动解析该sql返回的字段,保存到”数据详情”中。
提示:只有第一次保存sql才会自动解析字段,如果您后续修改sql增加或减少了字段,那么”数据详情”中是不会自动增加或减少字段的,需要您手工在”数据详情”中对字段进行增删改。
点击[数据详情]可以看到自动生成的字段信息,如图:
接下来我们组装json中building(幢)节点的数据。点击点击分享设置的[数据定义]->[新增]
填写如下sql语句:
SELECT DISTINCTz.ZHDJDYDM AS bdcdyh,z.zl
FROMzhuang zJOIN h ON h.ZXH = z.ZXHJOIN jyz ON h.HXH = jyz.HXH AND jyz.ywbh = parent~ywbh~
提示: parent~~是sql中获取动态参数(从父级数据集的查询结果中获取)的写法,参数名和父级数据集返回的字段名保持一致(大小写不敏感)。
根据报文结构,这个数据集对应的数据类型是jsonObject,数据集名称是building,父级数据集选择root,json字段小写,填写后点击保存即可。
接下来我们组装json中houses(户)节点的数据。点击点击分享设置的[数据定义]->[新增]
填写如下sql语句:
SELECT DISTINCTh.HDJDYDM AS bdcdyh,h.FBM AS fwbm,h.QSC AS szqsc,h.ZHZHC AS szzzc,h.FH AS shbw,h.ZL AS fwzl,h.JZJG AS jzjg,h.GHYT AS fwyt,h.JZMJ
FROMhJOIN jyz ON h.HXH = jyz.HXH AND jyz.ywbh = parent~ywbh~
如图:
根据报文结构,这个数据集对应的数据类型是jsonArray,数据集名称是houses,父级数据集选择root,json字段小写,填写后点击保存即可。
接下来我们组装json中sellers(卖方)节点的数据。点击点击分享设置的[数据定义]->[新增]
填写如下sql语句:
SELECTj.QC AS jyzqc,j.ZJMC AS jyzzjmc,j.ZJHM AS jyzzjhm,j.JYZXZ
FROMjyz j
WHEREj.ywbh = parent~ywbh~ AND j.JYZLB = '卖方'
如图:
根据报文结构,这个数据集对应的数据类型是jsonArray,数据集名称是sellers,父级数据集选择root,json字段小写,填写后点击保存即可。
接下来我们组装json中buyers(买方)节点的数据。点击点击分享设置的[数据定义]->[新增]
填写如下sql语句:
SELECTj.QC AS jyzqc,j.ZJMC AS jyzzjmc,j.ZJHM AS jyzzjhm,j.JYZXZ
FROMjyz j
WHEREj.ywbh = parent~ywbh~ AND j.JYZLB = '买方'
如图:
根据报文结构,这个数据集对应的数据类型是jsonArray,数据集名称是buyers,父级数据集选择root,json字段小写,填写后点击保存即可。
到此为止,我们所有的sql都添加好了,数据定义列表截图如下:
4.在线测试接口
回到路由设置的列表页,找到我们刚才新增的路由,点击[打开文档],如图所示:
点击后可以看到API平台为我们自动生成的在线文档,如图:
我们填写入参值:YS20231203000001,点击[试一下],接口调用该接口,如图:
可以看到API平台为这个接口自动生成的接口地址是"http://127.0.0.1:8080/adi/bitapi/queryMmhtJbxx",其中的adi和bitapi是固定路径,queryMmhtJbxx则是我们自定义的路由编码;响应报文如下:
{"type": "success","data": {"ywbh": "20231203000001","htbh": "YS20231203000001","building": {"bdcdyh": "110108001001GB00001F0001","zl": "北京市海淀区曙光中路曙光花园智业园1幢"},"houses": [{"bdcdyh": "110108001001GB00001F00010003","fwbm": "fbm0003","szqsc": 1,"szzzc": 1,"shbw": "103","fwzl": "北京市海淀区曙光中路曙光花园智业园1幢B座1-103","jzjg": "钢结构","fwyt": "住宅","jzmj": 183}],"sellers": [{"jyzqc": "张三","jyzzjmc": "居民身份证","jyzzjhm": "510121100909137101","jyzxz": "外省市个人"},{"jyzqc": "李四","jyzzjmc": "军官证","jyzzjhm": "wj0001","jyzxz": "军人"}],"buyers": [{"jyzqc": "王五","jyzzjmc": "户口簿","jyzzjhm": "522121100909137102","jyzxz": "本市城镇居民"},{"jyzqc": "赵六","jyzzjmc": "港澳台身份证","jyzzjhm": "gat0001","jyzxz": "台湾同胞"}]},"uuid": "ece8cac65dc744b993ac86dadaeae6af"
}
其中的type、data、uuid是API平台响应的固定参数,解释如下:
type:表示本次接口调用是否成功,其中type=success表示请求处理成功,否则(type=fail)表示处理失败,当处理成功时,data一般是装载业务数据的json对象或者是字符串类型的提示信息,当处理失败时,data则是字符串类型的失败原因。
data:业务数据或提示信息。
uuid:本次请求的唯一标识,通过uuid值可以在API平台中迅速定位日志详情。
注意: API平台要求请求报文必须是utf-8编码的;API平台的响应报文也是utf-8编码的。
有了在线接口文档,我们就不需要安装类似postman这种软件了,当时,如果你确实想在postman中调用也是可以的,在浏览器地址栏调用get请求也是可以的,如图所示:
4.查询接口调用日志
点击主界面的[分享日子和ES查询]或[分享日志管理],如图所示:
每个分享设置在执行时都会生成一条分享日志。从"说明"列我们可以看到最开始那条日志对应的调用耗时最长,是因为数据源第一次被使用时API平台会创建数据库连接池。最常用的两列:
日志编码: 每次调用时的唯一编码,可以从API平台的响应报文中中获取;
日志跟踪: 从接口入参中获取,一般是业务系统的某个字段,例如业务编号或买卖合同号等,可以自定义使用哪个入参作为日志跟踪值。
如果使用ES查询,那么我们可以在第一个查询条件输入框中输入某个关键字,即可查询到相关的日志,例如我们输入"周杰伦"进行查询,效果如下:
ES查询提高了我们查询日志的灵活程度。
点击[详情],可以看到该条分享日志更加详细的信息,例如请求报文、请求时间、响应报文、响应时间等,如图所示:
里面有些字段值是空的,这是因为我们本次定义的接口没有涉及到请求转发、没有涉及到加解密。
到这里,相信大家已经对ADI平台有了一个初步的认识,后续我将继续介绍ADI平台其它的重要功能,谢谢您的观看!
相关文章:

API低代码平台介绍2-最基本的数据查询功能
最基本的数据查询功能 本篇文章我们将介绍如何使用ADI平台定义一个基本的数据查询接口。由于是介绍平台具体功能的第一篇文章,里面会涉及比较多的概念介绍,了解了这些概念有助于您阅读后续的文章。 ADI平台的首页面如下: 1.菜单介绍 1.1 O…...

面试经典150题——盛最多水的容器
面试经典150题 day28 题目来源我的题解方法一 双指针 题目来源 力扣每日一题;题序:11 我的题解 方法一 双指针 使用两个指针left和right,初始分别指向最左侧和最右侧,然后每次移动矮的一侧。存水量Math.min(height[left],heigh…...

Box86源码解读记录
1. 背景说明 Github地址:https://github.com/ptitSeb/box86 官方推荐的视频教程:Box86/Box64视频教程网盘 2. 程序执行主体图 Box86版本: Box86 with Dynarec v0.3.4 主函数会执行一大堆的初始化工作,包括但不限于:BOX上下文 …...

Azure AKS日志查询KQL表达式
背景需求 Azure(Global) AKS集群中,需要查询部署服务的历史日志,例如:我部署了服务A,但服务A的上一个版本Pod已经被杀掉由于版本的更新迭代,而我在命令行中只能看到当前版本的pod日志ÿ…...

Set接口
Set接口的介绍 Set接口基本介绍 无序(添加和取出的顺序不一致),没有索引不允许重复元素,所以最多包含一个nullJDK API中Set接口的实现类:主要有HashSet;TreeSet Set接口的常用方法 和List 接口一样&am…...

vue2结合element-ui实现TreeSelect 树选择功能
需求背景 在日常开发中,我们会遇见很多不同的业务需求。如果让你用element-ui实现一个 tree-select 组件,你会怎么做? 这个组件在 element-plus 中是有这个组件存在的,但是在 element-ui 中是没有的。 可能你会直接使用 elemen…...

Python运维之定时任务模块APScheduler
前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除 目录 定时任务模块APScheduler 一、安装及基本概念 1.1、APScheduler的安装 1.2、涉及概念 1.3、APScheduler的工作流程编辑 二、配置调度器 …...

Linux技能
文章目录 Linux2024心得优秀博客 Linux2024 心得 会一些基本的命令,解决生产的问题有时候会用的到 优秀博客 02、Linux相关工具及操作03、Linux实用指令 cat xxx | grep “xx xx” 这个应用在从大量的日志文件中找到报错的信息 04、Linux高级部分05、JavaEE定制…...

算法有哪些分类
算法的分类可以根据不同的标准来进行,以下是一些常见的算法分类: 基本算法分类: 搜索算法:包括线性搜索、二分搜索、哈希搜索、深度优先搜索(DFS)、广度优先搜索(BFS)等。 排序算法…...

面试经典150题——找出字符串中第一个匹配项的下标
面试经典150题 day23 题目来源我的题解方法一 库函数方法二 自定义indexOf函数方法三 KMP算法 题目来源 力扣每日一题;题序:28 我的题解 方法一 库函数 直接使用indexOf函数。 时间复杂度:O(n) 空间复杂度:O(1) public int str…...

.Net MAUI 搭建Android 开发环境
一、 安装最新版本 VS 2022 安装时候选择上 .Net MAUI 跨平台开发 二、安装成功后,创建 .Net MAUI 应用 三、使用 VS 自带的 Android SDK 下载 ,Android镜像、编译工具、加速工具 四、使用Vs 自带的 Android Avd 创建虚拟机 五、使用 Android 手机真机调试...

编译适配纯鸿蒙系统的ijkplayer中的ffmpeg库
目前bilibili官方的ijkplayer播放器,是只适配Android和IOS系统的。而华为接下来即将发布纯harmony系统,是否有基于harmony系统的ijkplayer可以使用呢? 鸿蒙版ijkplayer播放器是哪个,如何使用,这个问题,大家…...

离线维护麒麟操作系统
1 本地源设置 a 首先传输一个镜像ISO文件到离线系统。 b 加载镜像文件作为源文件。 #mkdir /mnt/cdrom #mount -o path/镜像.iso /mnt/cdromc 修改源文件 # cd /etc/yum.repo.d/ # vi base.repo 修改baseurl file:///mnt/cdrom d update &install 然后就可以愉快的…...

leetcode尊享面试——二叉树(python)
250.统计同值子树 使用dfs深度搜索,同值子树,要满足三个条件: 对于当前节点node,他的左子树血脉纯净(为同值子树),右子树血脉纯净(为同值子树),node的值等于…...

macbookpro 安装linux mint 无线wifi无法连接 解决方案
见欢迎页面—驱动管理...

抖音小店如此内卷,现在还值得投入吗?还能赚到钱吗?
大家好,我是电商笨笨熊 抖音小店已经经历4-5年的风霜,所以现在很多还未入驻的玩家都会有一个顾虑; 担心现在进入抖店是都还具备发展空间,还能不能赚到钱; 尤其是当一片市场逐渐加入越来越多商家的时候平台一定会内卷…...

Java基础知识(11)
Java基础知识(11) (包括:IO流高级流,网络爬虫基础,Commons-i0工具包和Hutool工具包) 目录 Java基础知识(11) 一.IO流高级流 1.缓冲流 【1】字节缓冲流 ࿰…...

iOS——SDWebImage源码学习
什么是SDWebImage SDWebImage是一个流行的iOS和macOS平台上的开源库,用于异步加载和缓存网络图片。它提供了一套简单易用的API,使得在应用中加载网络图片变得更加方便和高效。 主要特点和功能: 异步加载:SDWebImage通过异步方式…...

信创基础软件之中间件
信创基础软件之中间件 中间件概述 中间件是一种应用于分布式系统的基础软件,位于应用与操作系统、数据库之间,主要用于解决分布式环境下数据传输、数据访问、应用调度、系统构建和系统集成、流程管理等问题,是分布式环境下支撑应用开发、运…...

在Ubuntu linux操作系统上操作MySQL数据库常用的命令
检查是否安装了MySQL,或检查MySQL的状态: sudo systemctl status mysql或 sudo systemctl status mysql.service如果mysql有安装,上面这条命令会返回mysql的状态active或inactive。 卸载mysql数据库 第一步是停了数据库: sud…...

前端科举八股文-JAVASCRIPT篇
前端科举八股文-JAVASCRIPT篇 Js的变量类型,区别是什么平时有用过symbol吗函数闭包的理解?js的原型链? Function Function.constructor 返回值?promise的出现是为了解决什么问题?前端中的事件流事件委托?js的new操作符做了哪些…...

Docker私有仓库与Harbor部署使用
目录 一、本地私有仓库 1. 下载registry镜像 2. 在daemon.json文件中添加私有镜像仓库地址 编辑 3. 运行registry容器 4. Docker容器的重启策略如下 5. 为镜像打标签 6. 上传到私有仓库 7. 列出私有仓库的所有镜像 8. 列出私有仓库的centos镜像有哪些tag 9. 先删…...

Linux的iptables防火墙基础介绍
iptables 防火墙 应用层软件----管理 内核级netfilter 硬件-------内核----网络—netfilter/kvm----- app iptables iptables—控制netfilter 过滤:<smac/sip/dip/sport/dport/状态> TCP/IP 应用层 传输层 sport dport 状态 <三次握手/四次断开> 网…...

deepspeed+transformers模型微调
一、目录 代码讲解 二、实现。 1、代码讲解,trainer 实现。 transformers通过trainer 集成deepspeed功能,所以中需要进行文件配置,即可实现deepspeed的训练。 微调代码: 参数定义—>数据处理---->模型创建/评估方式----&…...

无人机摄影测量数据处理、三维建模及在土方量计算中的应用
专题一、无人机摄影测量技术应用现状及其发展 1、无人机摄影测量技术概述 2、摄影测量系统的发展 3、无人机摄影测量技术应用分析 专题二、基本原理和关键技术讲解 1、摄影测量基础知识 1)航空摄影 2)航摄像片的方位元素 3)共…...

《ESP8266通信指南》15-MQTT连接、订阅MQTT主题并打印消息(基于Lua|适合新手|非常简单)
往期 《ESP8266通信指南》14-连接WIFI(基于Lua)-CSDN博客 《ESP8266通信指南》13-Lua 简单入门(打印数据)-CSDN博客 《ESP8266通信指南》12-Lua 固件烧录-CSDN博客 《ESP8266通信指南》11-Lua开发环境配置-CSDN博客 《ESP826…...

LeetCode:两数之和
文章收录于LeetCode专栏 LeetCode地址 两数之和 给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值的那两个整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是数组中同一个元素在答案里不能重复出现。…...

CSDN我的创作纪念日128天||不忘初心|努力上进|勇往直前
机缘 Hello,大家好,我是景天,其实很早之前我就加入到了CSND的大军,彼时我还是个刚毕业的小白白,时常过来CSND汲取养料,就这样,慢慢的来提升自己,强大自己。工作锻炼了我,…...

MySQL数据库中的浮点类型和高精度类型有什么区别?为什么不推荐使用浮点类型?
在软件开发中,作为后端,无可避免的需要熟练使用 MySQL 数据库进行数据存储和读取。对于信息系统而言,数据库的的地位不言而喻。那作为软件开发工程师,在使用 MySQL 过程中,又有哪些需要注意的呢?我们从实际…...

C++ 抽象与封装
一 抽象 抽象实例:时钟 数据抽象: 具有表面当前时间的时、分、秒 行为抽象: 具有设置时间和显示时间两个最基本的功能。 抽象实例:人 数据抽象:姓名、年龄、性别等。 行为抽象: 生物属性:吃…...