ER图和数据库模型图有啥区别呢?

1. 简介

对于从事数据库结构设计相关人员而言,我们通常会在设计的不同阶段用到ER图和数据库模型图,用来描述数据之间的组成结构和数据间的关系,但是很多画图人员会把它们两者给搞混了,下面就来聊聊它们之间的区别。

1、ER图全称为实体联系模型实体关系模型实体联系模式图

  • 一般用在概念结构设计阶段
  • 用来描述数据需求,比如存储在数据库中的数据范围、数据类型、数据间的关系等等
  • 提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型
  • 侧重于概念设计,用于分析数据间的关系,满足第几范式要求

2、数据库模型图一般在数据库建模时使用,也可以从数据库逆向生成数据库模型图

  • 用在数据库建模阶段,一般用于关系型数据库建模,这个过程包含了概念设计阶段
  • 跟具体的数据库实现有一定关系
  • 侧重点是生成具体的数据库结构,表、字段、索引、主键、外键等等

常用的数据库模型图/ER图绘制工具很多是商用的,价格不菲;而往往很多免费的画图工具,功能完善没有那么完善,而且基本上没有将ER图和数据库模型图区分清楚,对于从事数据库设计相关工作的使用者,这无疑是十分不方便的。
在使用过这么多画图软件之后,和听取了不少从事数据库设计相关工作的使用者的建议之后,PDDON免费在线画图同时提供了绘制ER图和数据库模型图的能力,方便使用者在数据库设计的不同阶段绘制目标类型绘图。本文将带大家学习如何绘制ER图和数据库模型图。

2. ER图绘制教程

2.1 ER图的三个要素

  • 实体 实体是具有公共性质、并可以相互区分的现实世界的对象的集合或者是具有相同结构对象的集合。在ER图中用矩形表示,将实体名写在矩形内。

  • 属性/字段 每个实体都具有一定的特征和性质,我们才能根据实体的特征来区分一个个实例。属性就是描述实体或联系的性质或特征的数据项,属于一个实体的所有实例都有相同的属性。在ER图中属性用椭圆表示,属性名写在椭圆内,并用不带箭头的连线将属性和实体连接起来。

  • 联系 在现实世界中,事物的内部或事物之间都有着某种联系,这种联系在信息世界中反应为实体内部的联系和实体之间的联系。在ER图中用菱形表示,菱形框内写明联系名,并用连线分别与有关实体连接起来,同时在连线上标明联系的类型,常见的联系类型有:
  • 1:1
  • 1:n
  • m:n

2.2 两个实体之间的联系
这里我们详细讲解一下实体间的联系类型,并配上图例

  1. 一对一联系(1:1) 实体A中的每个实例在实体B中至多有有一个(或没有)实例与其关联,反之亦然,则称实体A和实体B为一对一关系。

  1. 一对多联系(1:n) 实体A中的每个实例在实体B中有n个实例(n>1)与之相关联,而实体B中的每个实例在实体A中最多只有一个实例与之关联,则称实体A和实体B为一对多关系

  1. 多为多联系(m:n) 实体A中的每个实例在实体B中有n(m>1)个实例与之关联,实体b中的每个实例在实体A中有m(m>1)个实例与之关联,则成为实体A与实体B为多对多关系。

2.3 实例演示
我们以学生选课为例,一个学生可以选择多门课程,一门课程可以被多个学生选择,一门课程可以被多名老师授课,一名老师同样可以教授多门课程,如下所示:

3. 数据库模型图绘制教程

3.1 数据库模型图说明
PDDON 提供的数据建模工具套件能除了可以绘制简洁美观的数据库模型图,还支持实时生成和预览代码/SQL脚本,而且支持多种编程语言和SQL方言、打包下载代码/SQL等功能。
数据库模型图包含以下要素和功能:

  • 表结构
  • Table
  • Field
  • Key
  • 主键
  • 外键
  • 索引
  • 类型
  • 索引字段规则等
  • SQL预览和下载 PDDON提供了实时生成和预览SQL,也可以打包下载SQL脚本。 右键菜单预览某个类生成的SQL 主菜单可以整体预览/下载SQL

  • 代码预览和下载 PDDON会自动将表转换为实体类结构,自动转换为代码驼峰风格的类名、字段名,自动转换字段类型。

支持实时生成、预览、下载代码。

  • 下载ER图图片 您可以使用下载功能,下载图片到本地

  • 导出导入绘图数据 当然PDDON不仅仅保存了绘图信息,而且会保存您的所有建模相关的数据,您可以使用导出设计稿功能对设计信息进行备份,也可以结合一些代码版本工具对齐进行版本跟踪和管控。 当您需要再次使用该建模设计稿时,重新导入到PDDON工作空间即可。
  • 快捷转换 PDDON还支持UML类图和ER图之间的快速互转,节省设计时间。

3.2 完整示例

  • 创建数据库模型图

  • 数据库模型图模板

  • ER图使用示例

4. PDDON与其他画图工具不同的地方

  1. 在线画图,打开浏览器就能用,无论windows、mac、linux系统都能用,手机上都能画图
  2. PDDON完全免费,但不同于其他免费软件,PDDON非常好用,而且一直在迭代更新,致力于提供更简单高效美观的绘图软件服务
  3. PDDON为每种类型绘图做了定制化功能增强,并非是纯图形绘制,在逻辑功能上进行增强,更易于使用
  4. 对程序员和设计者更友好,提供了低代码能力,自动生成SQL和代码节省了编码的时间,而且不易出错,能最大程度保持设计稿与代码的一致性
  5. 国人开发的,功能体验对国内用户更友好
  6. 提供了很多傻瓜式的智能操作功能,能快速一键切换连线、绘图风格
  7. 智能辅助绘图功能简化用户操作,对无绘图经验的用户更友好
  8. 功能简化用户操作,对无绘图经验的用户更友好
  9. 近期刚推出1.0版本,广受用户喜爱,好评不断

5. 下面带大家看看我平时工作使用PDDON画的图

  • ER图

  • 数据库模型图

  • UML图

  • 架构图

  • 流程图

  • 其他绘图

6. 总结
总得来说,怕画不好图就来用PDDON

PDDON作为画图界的后期之秀,虽然是一款完全免费的画图软件,在绘图的美观和易用性上几乎完胜市面上的免费软件,作为唯一一款支持低代码的画图工具,可以极大简化开发人员的画图操作,大量减少开发人员的代码/SQL编写时间。

PDDON除了可以用来绘制ER图、数据库模型图,还支持UML图、流程图、架构图、思维导图、数据库模型图、鱼骨图、韦恩图、网络拓扑图、自由风格绘图等等一系列绘图,有了PDDON,再也不用担心找不到好用的画图工具了。

可以关注PDDON在线画图公众号,收藏、点赞、不迷路哦,感谢您的阅读。

本文转载于网络 如有侵权请联系删除

相关文章

  • 戴尔向数据科学家“下手”了

    在推进AI项目,进行大数据并行计算的时候,科研工作者最担心的事儿,莫过于因硬件问题导致的内存错误了。如果能再给这些数据科学家一次机会……不!他们根本不想再算一次。传统的工作站主要应用在图形和视频两大领域,压倒性优势的显示性能是它们区别于PC机的重要标志,虽然它们的外形是如此的相像。如今,新的需求随着AI的勃兴,也已经传递到了工作站市场。一台能够服务于AI开发需求的工作站,正在成为这个行业的必须品。只是,它有多“必须”呢?因为AI技术在自动驾驶、医疗、零售、制造和物流等众多行业领域的广泛应用,AI项目开发的需求正在水涨船高。戴尔在2019年委托第三方调研了500家企业,其中高达70%的企业高管表示,已经在企业的生产、实验或者概念验证中使用了AI技术。这自然而然地给那些AI的开发者带来了压力。AI的实现通常要经过数据准备、模型开发和训练、以及模型部署三个阶段,整个过程对平台的算力有很高的要求。而在这三个阶段中,围绕硬件平台,数据科学家们通常会有三个选择,一是在服务器上,二是在云端,而第三,就是找到一台适合高强度计算要求的数据科学工作站产品。前两者毫无疑问有着更强的算力和性能,但也有着高昂的

  • Simple UI快速上手

    SimpleUI快速上手在混合开发的模式下,如果想使用djangoadmin,又嫌弃后台不符合你的审美?SimpleUI给你想要的答案,我不是打广告的~介绍?simpleui是djangoadmin的一个主题是一个基于element-ui+vue开发,重写和优化90%以上的页面。与suit是同类产品。我们是一个更符合国人审美和使用习惯的一个主题特点?内置28款流行的主题⚡️pip闪电安装100%兼容原生admin无需修改代码✨多标签页面,各个模块更加清晰明了?配置简单,极速上手,在settings.py中加入simpleui后启动立即生效,效率提升100%!让后端开发得心应手。☕️Element-UI+Vue加持,让古老的djangoadmin焕然一新。支持django和python版本支持的Python版本版本说明Python2.7.x不支持Python3.x支持Python3.7.x支持Python3.8.x支持Python3.9.x支持支持的Django版本版本说明Django1.x不支持Django2.x支持Django3.x支持安装pipinstalldjango-simpl

  • Excel插件-多工作薄合并工具之安装注意事项和下载地址公布

    安装步骤 因插件是使用visualstudio的开发环境开发的,这种Excel插件有别于传统的使用VBA语言开发的Excel插件,需要对用户电脑有一些底层的运行环境的要求。咋看是有些麻烦,但实质是更加安全、友好,用户在环境搭建好的情况下,基本只需双击这样的动作就能打开使用,不需设置宏安全性、宏警告等VBA开发的插件所面对的问题,特别适合企业级别的开发使用。最最突出的是此种VSTO方式开发的插件是Excel文档和实现功能的代码可以分离,对插件维护、升级、错误修复等等一些开发过程中不可避免的问题时,使用VSTO的数据和代码分离技术,数据保存在用户电脑,代码开发者开发好重新发布,用户可以无需担心升级、错误修复等原因而不得不把手头的Excel文件弃用,重新获取开发者最新的版本的Excel文件,然后再重头再来完成之前在前一版本里已经个性化做过的事情。有机会再给大家演示这种自动升级的技术部分,今天所分享的部分还是需要有更改重新覆盖,但这种覆盖也只需覆盖代码文件(dll后缀的文件,Excel工作薄还是可以保留使用,无需更换) 安装底层组件 此组件因不同的终端电脑环境不同,部分电脑若已经安装过,不需要

  • 12分的Nature子刊教你识别驱动基因新方法

    今天跟大家分享的是2020年2月发表在Nat.Commun.(IF:12.121)杂志上的一篇文章CombinedburdenandfunctionalimpacttestsforcancerdriverdiscoveryusingDriverPower.在文章中作者描述了一种新的高灵敏度算法DriverPower,用于在全基因组和外显子组测序数据中识别区分癌症的驱动和乘客突变。CombinedburdenandfunctionalimpacttestsforcancerdriverdiscoveryusingDriverPower使用DriverPower识别癌症driver基因的综合负荷和功能影响测试(分享者:科研菌-碎碎冰)一.研究背景与癌症发生发展相关的重要基因被称为“驱动基因(driver基因)”,这种基因决定了癌症的走向:当driver基因发生突变后,癌细胞就会活跃起来。driver基因突变占肿瘤中体细胞变异比例少,而且在大多数癌症中,肿瘤内和肿瘤间存在明显的异质性,背景突变率(BMR)都可能存在数个数量级的差异。此外,大规模癌症全基因组测序WGS的出现为人们探索drive

  • 003.Elasticsearch-6.6.0生产环境集群部署指南

    1.硬件配置和集群规划1.1内存ES是很消耗内存的,消耗的不是JVM的内存,一般来说ES用的JVMHeap还是比较少的,主要是使用机器的物理内存,ES底层基于Lucene,Lucene是基于磁盘文件来读写和保存索引数据的,包括倒排索引、正排索引等,Lucene的特点就是基于OSFileSystemCache,尽量将频繁访问的磁盘数据在操作系统的内存中进行缓存,以此来提升磁盘文件读写的性能,ES的性能80%取决于在分配完JVMHeap之后剩下的服务器物理内存,这些系统内存将用做ES的磁盘索引文件的缓存,如果OSCache能够缓存更多的磁盘文件的数据,索引文件的数据,那么索引读写的性能会高很多,特别是检索的性能。如果大量的索引文件无法缓存在OSCache中,那么搜索、聚合的时候大量的请求都是读写磁盘文件,性能当然是上不去的,检索和聚合操作的时间数据级可能有ms级变为s级,假如使用ES基于千万级别的数据量做搜索,要耗费10s+,那大概率就是因为大量请求读写磁盘了。ES的排序和聚合都会消耗很多内存,所以给ES进程分配足够的JVMHeap内存是很重要的,除此之外,还要给足够的内存给OSFileS

  • 数据库风云五十载:老骥伏枥,新秀迭起!

    作者|姜洪军 出品|CSDN云计算(ID:CSDNcloud) “在数据库技术方面,亚马逊落后甲骨文10至20年”。2018年10月23日,甲骨文(Oracle)创始人、执行董事长拉里·埃里森,在甲骨文举办的一次大会的主题演讲环节中,再次火力全开。 他称甲骨文的数据库“完全自治”,而亚马逊的数据库则是“半自主的”。“半自主数据库就像半自动驾驶汽车一样。”埃里森这样表示,“你进去开的时候,你就惨了,最后必死无疑。” 甲骨文创始人拉里·埃里森 多年以前,他曾不断地“炮轰”微软和其创始人比尔·盖茨。 “我不介意驾驶着自己的喷气式战斗机,在微软总部扔下一枚导弹。”埃里森这样夸张地说,“我的目标是击败微软”。“我和盖茨之间的战争不是个人的事,是全世界的事。” 埃里森总是这样个性鲜明,话语犀利啊! 说起来,一部数据库发展史,几乎就是半部埃里森传奇史,本文就先从他丰富多彩的人生讲起。 一个特立独行的创业者 埃里森对外界的抨击从不在意:“并不是每个人都得欣赏我,我也不是非得喜欢每一个我所认识的人。我喜欢被关注和被欣赏的感觉。但如果有的人不那么喜欢我,我仍可以活得更好,仍然会觉得自己是个不错的人。” “

  • 你愿意花十分钟系统了解数据分析方法吗?

    通常在拿到一份数据进行相关的模型训练之前,我们需要进行数据清洗以便得到干净的数据。进一步需要找到与问题有关的特征信息,并把这些特征转换成特征矩阵的数值,这也就是机器学习实践中的重要步骤之一,特征工程。本系列文章将从数据特征的分布分析、对比分析、统计分析、贡献度分析(帕累托分析)、和特征的相关性分析来识别数据集整体上的一些重要性质。本文目录01特征分布分析02特征对比分析03特征统计分析04特征贡献度分析05特征相关性分析01分布分析 理论介绍:分布分析是用来解释数据的分布类型和分布特征,显示其分布情况。所以可以对一开始拿到数据可以首先进行初步的分布分析。分布分析主要分成两种:①对定量的数据进行分布分析②对定性的数据进行分布分析。对定量数据的分布分析按照如下步骤进行: 1、求极差 2、决定组距与组数 3、决定分点 4、绘制频率分布图对定性的数据分布分析: 根据变量的分类类型来确定分组,然后使用图形对信息进行显示。Python分析结果:比如现在你爬取到某地区的二手房信息数据,针对这一批数据的房价你要做一次定量分布分析,以及对不同房子的朝向做一个定性的分布分析,以便初步的了解房子的一些特征分

  • insert和update的一些性能对比测试

    这是学习笔记的第1933篇文章今天在做中间件的测试时,突然想到之前的一些思路也可以借鉴一下,这块的内容还是比较有意思,简单剧透一下,如何把drop操作转换为alter,如何把alter操作转换为DML操作,其实都是设计中的一些经验法则,而今天要聊的是另外一个,如何把一个update转换为一条insert.先说下问题的背景,最近在测试一个业务时,业务的并发很高,我们在应用架构改造中,根据模型的特点,最终对事务做了降维处理,本来这种操作和改进带来的收益是很明显的,结果在压测的时候就碰到了明显的问题,程序的逻辑是1)根据id查看对应的userid是否存在2.1)如果存在进行update,2.2)如果不存在进行insert.看起来这个逻辑已经很清晰了,但是在程序高并发的情况下,在第1步到第2步之间产生了一些并发带来的副作用,假设线程1步骤1的判断userid不存在,正在insert的瞬间,线程2也进行了同样的insert操作,在毫秒级别就会出现主键冲突,这种情况相对还是比较频繁的,从业务架构上,其实可以有更好的解决方案,而在数据库层面能做些什么呢。其实我们也可以想一些办法,MySQL里面有两种

  • 美物理学家颠覆现有全息技术,使走进3D电影的世界成为可能 | 黑科技

    这一技术被《自然》线上网站列为头条。全息图是迄今为止唯一在空间中呈现3D影像的形式,它以激光为光源,点光源通过对干涉条纹照射后,空气中形成一张图像。对于这种唯一的3D影像呈现方式,DanielSmalley很不开心:“如果我用手捂住光源,那就什么都没有了。”于是,他立即想了一个办法去解决这个问题。DanielSmalley是美国普罗沃杨百翰大学的物理学家,他带领的团队研制出的这种方法就像就是一种高速蚀刻(使用化学反应或物理撞击作用而移除的技术)出图像的方法:他们利用一组人眼几乎看不见的激光束来传递能量,以此捕获一种颗粒(植物纤维素),并对其进行不均匀加热;接着他们用第二组激光器(红、绿、蓝)的光线去追踪粒子,其中这些粒子在空中以高速移动,所以粒子的移动轨迹在人眼看来就是一条线,这样就可以构成一张图像,而当每一张图像都快速变化,就形成了3D影像。与全息图相比,这一技术最炫酷的地方就在于:显示器功能可以加持在真实的物体上,观众可以自由得在3D影像中走动而不会阻碍画面的呈现,这也就将实现真正意义上的沉浸式3D影像。全息技术通过2D图像中的衍射光栅来衍生出3D图像的,光栅操纵光线的路径,使得它

  • [机智的机器在学习] 卷积神经网络入门教程(1)

    机智的机器在学习,就像机智的你现在在学习一样,当你在看这篇文章的时候,你就是在学习,学习的材料(数据)就是这篇文章。学习的结果就是你了解了卷积神经网络是个什么鬼。同理可得,机器在学习(也可以叫训练机器,想想运动员怎么训练)的时候,它的眼里看着的就是数据(数字,图像,文本,音频,视频。。。),学习的结果就是数据中有哪些内容,它的各种结构,特征是什么样子的。说句题外话,我开通这个公众号,其实不求粉丝有多少,阅读量有多少,讲道理,这几天我感觉把自己写的东西,发到群里,朋友圈确实需要勇气,如果打扰到谁了,这里说声抱歉。我只是想总结一下我走过的路,以及以后我要走的路,然而并不是每条路都是非常平坦的大道,难免会遇到一些坑,不管是大坑还是小坑,如果能提醒到后来的人,那我就很开心了呀!*.*然后水平有限,有哪些坑没有填满,那就需要我们共同努力了!另外我会尽量写完之后检查一遍,减少错别字(其实我不喜欢打错别字的童鞋),一般是写完之后就直接发了,请大家别理解。今天正式开始卷积神经网络的学习了,卷积神经网络,就是非常著名的ConvolutionNeuralNetworks,简称CNN。它包含两个意思,一个是

  • 从2014年软件收入百强名单看 管理软件市场全面沦落用友、金蝶掉队

    昨天手一抖就把稿件给删了,随后我的微信后台就爆了,报歉了各位,没有被公关去喝茶一说,今天补发,另外有很多人都说这个数据不准,我们关注的纯软件公司的数据准就行,从这里面还是能看出一些线索出来就OK了。工信部每年的软件收入百强名单我都会关注,因为里面有一些我比较关注的厂商,也是我比较关注的行业,很多人问我这个收入怎么算出来的?其实我也不知道有的是做硬件的,但是非得扣上软件收入的帽子,是不是因为这样可以得退税补帖的缘故,这些我们暂且不论,单从近两年的收入名单来看,真是几家欢乐几家愁。从整体的软件收入来看,中国软件企业实力明显增强,2014年软件业务收入的4751亿元,较2013年收入增长了29.6%。从前五强的收入来看,华为2013年是1017亿,而2014年却达到了1216亿,增幅明显霸气显现,真所谓强者恒强,弱者恒弱,从前五位的收入来看,大家都有所增加,只不过增幅各有不同,只不过前五名从华为,海尔,浪潮,北大方正,南京南瑞变成了今年的华为、中兴、海尔,北大方正和浪潮。另外,受去IOE影响,浪潮受益明显,去年上榜只有95亿,而今年却突破百亿以115亿挤身前五,其中这里面不乏包括服务器方面的

  • Shell编程——Shell中的数学运算

    在LinuxShell中进行数学运算,通常可以使用的运算符有:简单运算:let[](())高级运算:exprbc1、let命令let命令是bash内置命令,可以实现简单的算术以及逻辑运算,通过helplet命令,可以查询到let命令的具体使用方法。使用方法:#!/bin/sh i=10 echo$i leti=i+10#20 echo$i let"i=i+100"#120 echo$i复制2、[][]相当于let命令,其用法如下:#!/bin/sh i=10 echo$i i=$[i+10]#20 echo$i i=$[i+100]#120 echo$i复制3、(())(())等价于[],其具体用法如下:#!/bin/sh i=10 echo$i i=$((i+10))#20 echo$i i=$((i+100))#120 echo$i复制4、exprexpr同样可以用来进行基本的算术运算。注意:变量与运算符之间必须使用空格作为分隔符。具体用法如下:#!/bin/sh i=10 echo$i i=`expr$i+10`#20 echo$i i

  • 硬刚、中移动被废,中联通中标:两家均投标 HPE、H3C 产品,配置、型号相同

    2022年7月4日,滨州市中医医院发布《新院数据中心设备采购项目》公开招标公告,预算352万元。更正公告2022年7月5日发布更正公告,因项目调整,本项目暂停下载文件及开评标活动,具体时间另行通知。(二次)招标2022年7月11日再次发布招标公告,预算352万元。技术要求:中标结果2022年8月2日发布中标结果,中国移动通信集团山东有限公司351.685万元中标。报价分析表:评审结果:未中标(成交)供应商的未中标(成交)原因:1、山东金都信息科技有限公司:评审得分较低(其他情形商务部分、技术部分、服务部分、价格部分得分较低)2、山东远卓智能科技有限公司:评审得分较低(其他情形商务部分、技术部分、服务部分、价格部分得分较低)3、滨州市永旺智能科技有限公司:评审得分较低(其他情形商务部分、技术部分、服务部分得分较低)投诉处理结果2022年8月26日滨州市财政局发布投诉处理结果公告。废标公告2022年8月26日发布废标公告,项目终止的原因:因投诉事项成立,本项目废标,重新组织采购。竞争性磋商公告2022年9月1日发布竞争性磋商公告,预算352万元。技术要求:中标结果2022年9月14日发布中

  • 16_Vue列表渲染中key的工作原理和虚拟DOM对比算法

    key的作用 粗略的讲,key的作用就是给节点设置一个唯一的标识 就像我们人类社会中,每个人的身份证号一样 在大部分对key要求不是很严格的场景下,使用index作为key是没问题的 但是我们本章要探讨的是,其他情况,可能会出现问题的情况 来看个例子 案例 这里呢,有个ul标签 在内部,li标签通过v-for渲染data当中的persons数组 <script> varvm=newVue({ el:'.app', data:{ name:'wavesbright', persons:[ {id:1,name:'张三',age:18}, {id:2,name:"李四",age:19}, {id:3,name:"王五",age:20}, ], }, }); </script> 复制 得到了三个节点(3个li) <divclass="app"> <h1>遍历数组</h1> <ul> <liv-for="(item,index)inpersons":key="index"&g

  • node写后台接口,从零开始

    1、新建文件夹(test) 2、cmd模式,cd进入当前文件夹 3、npminit 初始化项目 4、npminstallmysql-S  //安装MySQL   npminstallexpress-S  //安装express框架   npminstallbody-parser-S  //安装body-parser插件   npminstallcors-S  //安装跨域的插件 5、在项目根目录下创建index.js文件   不多说,直接上index.js代码 1constexpress=require("express");//请求相关 2constapp=express(); 3 4constcors=require("cors");//跨域的 5app.use(cors()); 6 7constmysql=require("mysql");//数据库的 8 9constconnection=mysql.createConnection({ 10host:'localhost', 11port:'3306', 12user:'root', 13password:'ro

  • Android--下载zip压缩文件并解压

    网上有很多介绍下载文件或者解压zip文件的文章,但是两者结合的不多,在此记录一下下载zip文件并直接解压的方法,直接上代码。 源码下载:http://download.csdn.net/detail/chaoyu168/9717756 下载: importjava.io.BufferedInputStream; importjava.io.BufferedOutputStream; importjava.io.File; importjava.io.FileNotFoundException; importjava.io.FileOutputStream; importjava.io.IOException; importjava.io.InputStream; importjava.io.OutputStream; importjava.net.MalformedURLException; importjava.net.URL; importjava.net.URLConnection; importandroid.app.ProgressDialog; importandroid

  • springcloud config配置读取优先级

    情景描述 最近在修复Eureka的静态页面加载不出的缺陷时,最终发现是远程GIT仓库将静态资源访问方式配置给禁用了(spring.resources.add-mappings=false)。虽然最后直接修改远程GIT仓库的此配置项给解决了(spring.resources.add-mappings=true),但是从中牵涉出的配置读取优先级我们必须好好的再回顾下 springcloudconfig读取仓库配置 通过configclient模块来读取远程的仓库配置,只需要在boostrap.properties文件中配置如下属性即可 spring.application.name=eureka spring.cloud.config.uri=http://localhost:8888 spring.cloud.config.name=dev spring.cloud.config.username=dev spring.cloud.config.password=dev 复制 其就会以GET方式去请求http://localhost:8888/eureka/dev地址从而将配置拉取下来

  • Windows 特殊文件夹

    转载:http://www.xue163.com/124/6/1243914.html1.目录(Directory)与文件夹(Folder)的区别目录是DOS时代的产物,DOS文件系统是以目录树的形式将文件组织起来的,文件全部包含在目录里。任何一个文件的全名,由“目录名+文件名”两部分组成,目录名则是以“根目录+子目录+多级子目录...”组成,其中根目录是以任一26个英文字母加上冒号“:”表示的盘符,目录之间用反斜杠“\”作为路径分隔符分隔;文件名由“文件名称+扩展名”,扩展名以英文句点符号“.”开头,DOS时代的文件名是8.3格式,即文件名称由8个有效的ASCII字符组成,扩展名由以句点“.”开始,跟随3个有效的ASCII字符组成。因此,任何一个文件的全路径名称,都是以根目录开始的。到了Windows时代,则有了文件夹的概念。每个目录都是一个文件夹,而盘符被称作卷,卷也是一个文件夹。文件名则分为长文件名和短文件名(8.3格式)两个,其表示法上也有区分,这是为了在兼容8.3格式,并增强文件名的表示方式。但是Windows目前版本的完整文件名表示时最大长度限定为260个字符,路径名表示时

  • shell之常用的一些命令2

    前言  自我感觉学习shell要常用`man`,`--help`这样挺方便去写的,光靠熟练远远不够的 #!/bin/bash wget命令 我用到最多就是请求http网站啦,一般很少加参数 set-x url(){ timeout=6 fail=0 success=0 whiletrue do wget--timeout=$timeout--tries=1https://www.cnblogs.com/zqxFly/-q-o/dev/null if[$?-ne0] then letfail=fail+1 else letsuccess+=1 fi if[$success-ge1] then echosuccess exit0 fi if[$fails-ge2] then ttry="sysisdowm" echo$ttry|tee|mail-s"https://www.cnblogs.com/xxx" exit2 fi done } url wget接httplink expr命令是一个手工命令行计数器 1.结合match进行整数判断 if[[`exprmat

  • 《C++ Primer》【Chapter 1】

    开始 1.如何制定编译器的版本来支持c++xx的支持 g++-std=c++11-omainmain.cpp#支持c++11 g++-std=c++14-omainmain.cpp#支持c++14 复制 2.输入输出流iostream 随着时间的推移,字符是顺序生成或消耗的 标准库定义了4个IO对象 std::cin标准输入类型为istream std::cout标准输出类型为ostream std::cerr标准错误,输出警告和错误信息类型为ostream std::clog输出程序运行时的一般性信息类型为ostream 根据4个类型可以很明显看出cout、cerr、clog输出会写到同一个窗口。 std::endl endl被称为操作符。它能够将与设备关联的缓冲区(buffer)中的内容刷新到设备中,可以保证到目前为止程序所产生的所有输出都真正写入到输出流中,而不仅停留在内存中等待写入流。 输出运算符<< 两边接受两个运算对象,左侧必须为ostream对象,右侧为要打印的对象,作用是将要打印的值写入到ostream对象中。 输入运算符>> 两

  • TCP的连接控制

    TCP的三次握手 所谓三次握手(Three-wayHandshake),是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。 确认号ack:期待收到对方下一个报文段的第一个数据字节的序号。 确认ACK:占1位,仅当ACK=1时,确认号字段才有效。ACK=0时,确认号无效。 同步SYN:连接建立时用于同步序号。当SYN=1,ACK=0时表示:这是一个连接请求报文段。 若同意连接,则在响应报文段中使得SYN=1,ACK=1。因此,SYN=1表示这是一个连接请求,或连接接受报文。 终止FIN:用来释放一个连接。FIN=1表示:此报文段的发送方的数据已经发送完毕,并要求释放运输连接。 第一次握手:客户端发送一个TCP的SYN标志位置1的包指明客户打算连接的服务器的端口,以及初始序号X,保存在包头的序列号(SequenceNumber)字段里。 第二次握手:服务器发回确认包(ACK)应答。即SYN标志位和ACK标志位均为1同时,将确认序号(AcknowledgementNumber)设置为客户的ISN加1以.即X+1。 第三次握手:客户端再次发送确认包(ACK)SYN标志位为0,ACK标

相关推荐

推荐阅读